^(?!(xx +)\ 1 + $)和^(?!(xx +)\ 1 +)$?有什么区别?

时间:2015-03-23 15:02:18

标签: regex regex-negation regex-lookarounds

^(?!(xx+)\1+$)^(?!(xx+)\1+)$之间有什么区别?为什么前者解决了"匹配素数x"问题,而后者没有匹配?

1 个答案:

答案 0 :(得分:3)

除了^(?!(xx+)\1+)$^之间没有任何东西可以匹配时,

$将无法匹配任何东西。(空字符串将满足负向前瞻)。

^(?!(xx+)\1+$)可以重写为^(?!(x{2,})\1+$),并且只匹配x的素数。因为它取消了所有与x的2+次匹配的匹配 - 重复1次或更多次。

RegEx Demo