我的一个伙伴目前正在使用Java中的JpCap进行修补,我们发现了一些有关Java 中正则表达式的有趣(可能是?)问题.
仅捕获HTTP流量并随后进行分析.为此他正在使用这样的模式:
Pattern p = Pattern.compile("(www)");
但是我们两个人都无法找到:为什么上述模式根本不会产生匹配,而以下情况如下:
Pattern p = Pattern.compile(".*(www).*");
我可以看到,这些都应该是相同的,不是吗?我没有那么多关于正则表达式的经验,所以对这个问题可能有一个非常简单的答案:)
您的第一个模式只接受字符串'www'.
第二个模式接受任何位于其中的"www"字符串.
本网站提供了有关Java正则表达式的更多信息.
哦,没关系,我发现我们都有一点API盲;)
我们正在使用
Matcher.matches()
它将模式与整个字符串相匹配,而不是
Matcher.find()
它试图在给定字符串中的任何位置找到模式.
谢谢你的答案!:)