正则表达式,它匹配一个也包含括号的String

时间:2014-12-04 17:30:36

标签: java regex

我有以下文字

bla bla ==   aaaaaa(bb)aaaaaa  == bla bla

我想找到字符串(匹配)

==   aaaaaa(bb)aaaaaa   ==

我不知道==和aaaaaa之间有多少个空格,所以文字也可以是

bla bla ==          aaaaaa(bb)aaaaaa  == bla bla

在这种情况下我想匹配

==          aaaaaa(bb)aaaaaa  ==

我尝试使用以下正则表达式,但我意识到括号无法识别:

==(.+?)aaaaaa(bb)aaaaaa(.+?)==

怎么做?

2 个答案:

答案 0 :(得分:2)

()之前加上反斜杠,将它们用作常规字符,这必须有效:

==(.+?)aaaaaa\(bb\)aaaaaa(.+?)==

答案 1 :(得分:1)

如果要在字符串中匹配(),则需要在它们之前加上反斜杠字符。我想你可能想要像

这样的东西
Pattern pat = Pattern.compile("==(.+?)aaaaaa\\(bb\\)aaaaaa(.+?)==");

(您需要在字符串文字中包含两次反斜杠,以便在实际模式中获得一个反斜杠。)