Java Regex会不会匹配,有什么解释吗?

时间:2011-04-25 00:47:07

标签: java regex

正则表达式String

"[Ff][uU][Nn][Cc] " 

匹配输入:

"fUnC " 

但不是:

"func across( a, b )"

我不明白为什么......

我在这里测试我的表达式: http://www.regexplanet.com/simple/index.html

我发现我(愚蠢地)需要我的正则表达式"[Ff][uU][Nn][Cc] .*"来匹配。

已解决:如果您正在寻找相当于子匹配的内容,请不要使用便捷方法Pattern.Matches(regex, input)。您应该使用Matcher.find()方法。

4 个答案:

答案 0 :(得分:4)

当我使用你链接的正则表达式测试器时,我看到你的正则表达式适用于find(),但不适用于matches()。这就是我所期望的 - find()只是在目标字符串中查找正则表达式匹配,而matches()总是尝试匹配整个字符串。

答案 1 :(得分:0)

“[Ff] [uU] [Nn] [Cc]。*”可能有帮助......

答案 2 :(得分:0)

它可以......它工作正常。但你的字符串在那里,你会看到MATCHES是错误的,但replaceFirst和ReplaceAll工作正常。

如果你想让MATCHES成为现实

在最后添加*

答案 3 :(得分:0)

您是否也尝试使用正则表达式测试程序,忽略大小写?应该有一种方法可以在Java正则表达式匹配器中打开不区分大小写。