Java 求解以下正则表达式 请考虑以下内容: 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() + "."); String tempStr= “$#$#订单CAS号#$#abc#$”; Pattern p=Pattern.compile((?

Java 求解以下正则表达式 请考虑以下内容: 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() + "."); String tempStr= “$#$#订单CAS号#$#abc#$”; Pattern p=Pattern.compile((?,java,regex,Java,Regex,表达式\\w*与连字符或空格不匹配。请尝试[\\w\\s-]* Pattern p = Pattern.compile("(?<=\\$#)([\\w\\s-]*)(?=#\\$)"); Pattern p=Pattern.compile((?最终得到了解决方案 Pattern p = Pattern.compile("(?<=\\$#)([\\w-\\s\\w]*)(?=#\\$)"); Pattern p=Pattern.compile(“(?谢谢标记..但是如果我写“Ord

表达式
\\w*
与连字符或空格不匹配。请尝试
[\\w\\s-]*

Pattern p = Pattern.compile("(?<=\\$#)([\\w\\s-]*)(?=#\\$)");
Pattern p=Pattern.compile((?最终得到了解决方案

Pattern p = Pattern.compile("(?<=\\$#)([\\w-\\s\\w]*)(?=#\\$)");

Pattern p=Pattern.compile(“(?谢谢标记..但是如果我写“Order CAS No”…它不会给出正确的答案。它不支持空格。我是正则表达式新手。所以请告诉我支持空格。@rahul。然后在字符类中添加空格:-
[\\w\\s-]*
@rahul,请帮个忙并阅读[正则表达式教程](www.regular-expressions.info/tutorial.html)。您可以简单地将任何想要的字符包含到字符组中(放入
[…]
)。所以只需执行
[\\w-]
。但我想您很快就会找到更多要匹配的字符;)您能解释一下为什么要环顾四周,而不只是通过
\\\$\[\\w\\s-]匹配吗+#\\$
character类中的第二个
\\w
不起任何作用。此外,我建议将
-
放在character类的最后一个。否则,如果在其周围添加单个字符,您将遇到问题。还要注意
\\s
匹配所有空格,而不仅仅是空格(换行符和制表符)。