正则表达式 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()
方法。
最佳答案
当我使用您链接到的正则表达式测试器时,我发现您的正则表达式适用于 find(),但不适用于 matches()。这正是我所期望的——find() 只是在目标字符串中查找正则表达式命中,而 matches() 总是尝试匹配整个字符串。
关于Java Regex 不匹配,有什么解释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5774258/