正则表达式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()
方法。
答案 0 :(得分:4)
当我使用你链接的正则表达式测试器时,我看到你的正则表达式适用于find(),但不适用于matches()。这就是我所期望的 - find()只是在目标字符串中查找正则表达式匹配,而matches()总是尝试匹配整个字符串。
答案 1 :(得分:0)
“[Ff] [uU] [Nn] [Cc]。*”可能有帮助......
答案 2 :(得分:0)
它可以......它工作正常。但你的字符串在那里,你会看到MATCHES是错误的,但replaceFirst和ReplaceAll工作正常。
如果你想让MATCHES成为现实
在最后添加*
答案 3 :(得分:0)
您是否也尝试使用正则表达式测试程序,忽略大小写?应该有一种方法可以在Java正则表达式匹配器中打开不区分大小写。