正则表达式匹配精确的子字符串java
我有一个字符串如下
TestFilter('value') AND LoadTestFilter('value1') AND UserFilter(value2) OR TestFilter('value3')
我只想从上面的字符串中提取TestFilter和括号。 我希望正则表达式只匹配这两个子字符串
TestFilter('value')
TestFilter('value3')
我试过低于正则表达式
.*TestFilter\\((.*?)\\).*
它正在工作,但也与字符串中的LoadTestFilter匹配
如何只匹配TestFilter
# 1 楼答案
\b
匹配正则表达式中的单词边界。 所以\bTestFilter
将匹配"TestFilter"
而不是"LoadTestFilter"
,因为"Load"
和"Test"
之间没有单词边界因此,您可以使用:
或者
取决于您如何匹配输入(例如,
match()
-vs-find()
)Matcher#find
示例:输出: