请考虑以下文本:
String tempStr =
"$#<div style=\"text-align:left;\">$#Order-CAS No#$</div>$#abc#$";
Pattern p = Pattern.compile("(?<=\\$#)(\\w*)(?=#\\$)");
Matcher m = p.matcher(tempStr);
List<String> tokens = new ArrayList<String>();
while (m.find()) {
System.out.println("Found a " + m.group() + ".");
但它只给我 abc..我想要的答案是 Order-CASNo 和 abc。
最佳答案
表达式 \\w*
与连字符或空格不匹配。请尝试 [\\w\\s-]*
。
Pattern p = Pattern.compile("(?<=\\$#)([\\w\\s-]*)(?=#\\$)");
在此处阅读有关字符类的更多信息:
关于java - 解决以下正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118688/