用于匹配单词或短语的Java正则表达式模式

时间:2010-01-05 23:22:34

标签: java regex

我有以下正则表达式,我正在使用Pattern类进行编译。

\bIntegrated\s+Health\s+System\s+\(IHS\)\b

为什么这不符合这个字符串?

“测试模式案例综合健康系统(IHS)。”

如果我尝试\ bpattern \ b,它似乎有用,但对于上面的短语它没有。我在模式转义中有括号,所以不确定为什么它不起作用。如果我删除模式的括号部分,它确实匹配,但我想匹配整个事物。

3 个答案:

答案 0 :(得分:1)

1)逃避parens,否则他们捕获并分组元字符,而不是字面括号\( \)

2)删除最后的\ b你不能在文字后使用单词边界),因为)不被视为单词的一部分。

\bIntegrated\s+Health\s+System\s+\(IHS\)\W

答案 1 :(得分:0)

你有(IHS) - 一个小组 - 你想要\(IHS \)作为字面括号。

答案 2 :(得分:0)

您需要转义括号

\bIntegrated\s+Health\s+System\s+\(IHS\)\b

括号分隔捕获组。要匹配一组文字括号,您可以像\( \)

一样转义它们