使用正则表达式匹配模式

时间:2018-01-21 13:07:42

标签: regex

我必须匹配字符串中的baab,sdds等序列,序列不应该在方括号内。 到目前为止,我已经使用了正则表达式

/([a-z])([a-z])\2{1}\1{1}(?![^[]*])/

它给了我想要的输出但是上面的正则表达式也匹配像bbbb这样的序列,这是不可取的。 我想有一些东西可以比较捕获group1和捕获group2不相等。到目前为止我没有找到任何有用的东西。

Link for same

1 个答案:

答案 0 :(得分:2)

我认为您可以在第1组(?!\1)之后添加否定前瞻,以断言第一组后面的内容与第1组不同。

([a-z])(?!\1)([a-z])\2\1(?![^[]*])

如果您不希望自己的匹配位于方括号之间,则可以添加一个负面的后置(?<!\[)([a-z])(?!\1)([a-z])\2\1(?!])来断言您的匹配不是以[开头。 (如果您的引擎支持此功能)。