匹配相同字符的字符串中的第一个字符

时间:2018-03-28 16:41:31

标签: regex

我想匹配多个相同字符的字符串中的第一个字符,例如在"嘿(是的,我(我知道))"这样的字符串中,我希望在&#34之后立即匹配第一个括号;知道"这样我就可以抓住这个团体"(我知道)"只要。这样的正则表达式是什么?

示例:我有一个包含多个" a" s的字符串,可能是像#34; Whaaaaaat!"这样的感叹号。我想只匹配第一个" a"在那长串" a" s。

2 个答案:

答案 0 :(得分:0)

您可以使用否定字符类匹配不是右括号,然后捕获右括号,然后使用正向前瞻来断言下面有一个或多个右括号:

(?:[^)]|^)(\))(?=\1+)

那将匹配:

  • (?:[^)]|^)匹配不是a)或字符串的开头
  • (\))捕获)群组
  • (?=\1+)肯定后面的内容是第1组重复一次或多次的正面预测

或者匹配第一个a:

(?:[^a]|^)(a)(?=\1+)

答案 1 :(得分:0)

这对我有用:

?\){1}

我能够捕捉到第一个括号,或者存在哪个字符,然后我可以修改以通过更改量词来捕获任意数量的那些。