【问题标题】:Regex multiple exclusions正则表达式多重排除
【发布时间】:2017-11-16 10:59:11
【问题描述】:

我想制作一个匹配abbc 等组的正则表达式,其中每个字母都是不同的字符。

  • 它应该包含三个捕获组
  • 所有捕获组都应包含不同的字符
  • 第二个应该精确匹配两次

例子:

bank(不匹配,因为第二个和第三个字符不一样)

车(匹配)

书(匹配)

便便(不匹配,因为第一个和最后一个字符相同)

到目前为止,我一直在尝试这样的事情:

(.)(.(?!\1))\2(.(?!\1)(?!\2))

不过,这也匹配 poop。我该如何纠正这个问题?

【问题讨论】:

  • Regex 可能不是解决此问题的正确工具。

标签: regex capture-group


【解决方案1】:

你的前瞻定位有点偏离,你可以这样做

(.)(?!\1)(.)\2(?!\1|\2)(.)

https://regex101.com/r/heBJar/1

您可能需要根据需要应用锚点或单词边界。您还应该考虑使用[a-z][[:alpha:]] 或类似名称,而不是.

【讨论】:

    猜你喜欢
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2021-09-16
    • 2014-04-11
    • 2016-05-09
    相关资源
    最近更新 更多