带有fullstop的奇怪的正则表达式异常

时间:2015-11-18 14:55:06

标签: java regex

我正在使用

^(?i)(?=.*\bWORD_TO_FIND\b).*$

在这个具体案例中,我试图匹配“S.A.M。”

这种方式有效:

^(?i)(?=.*\bs.a.m\b).*$

这样做不会:

^(?i)(?=.*\bs.a.m.\b).*$

为什么那个完整的刹车会使比赛失利?

1 个答案:

答案 0 :(得分:1)

这是因为\bword boundary。在.之后,没有\bword boundary,但m之后就有。{ / p>

^(?i)(?=.*\bs\.a\.m\.\b).*$

                    ^^
                  Here no word boundary so assertion or lookahead fails.

如果您想匹配escaping

,您也应该是. .