regex - 多次匹配同一个未知字符

标签 regex

我有一个我似乎无法解决的正则表达式问题。我实际上不知道正则表达式是否可以做到这一点,但我需要在模式末尾匹配一系列字符 n 次。
例如。 blahblah[A-Z]{n}
问题是与结束范围匹配的任何字符都必须相同。

例如,我想匹配

  • blahblahAAAAAA
  • blahblahEEEEE
  • blahblahQQQQ

  • 但不是
  • blahblahADFES
  • blahblahZYYYY

  • 是否有一些正则表达式模式可以做到这一点?

    最佳答案

    您可以使用此模式:blahblah([A-Z])\1+\1是对第一个捕获组的反向引用,在本例中为 ([A-Z]) .和 +将匹配该字符一次或多次。要限制它,您可以替换 +使用 {n} 指定重复次数,例如 \1{3}这将匹配它三倍。

    如果您需要匹配整个字符串,请确保以 ^ 为前缀。并以 $ 结尾,分别使模式变为 ^blahblah([A-Z])\1+$
    您可以阅读更多关于 back-references here .

    关于regex - 多次匹配同一个未知字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460397/

    相关文章:

    regex - Struts 2.3 忽略通配符操作

    regex - 根据歧义对正则表达式进行“评分”

    java - 查找并替换以新字符串开头和结尾的子字符串 java

    正则表达式:至少包含 8 位十进制数字

    regex - 如何在 Rust 中获取重叠的正则表达式捕获?

    php - 正则表达式使用 YYYY-MM-DD 格式验证 PHP 中的日期

    c# - 为 asp.net asp :RegularExpressionValidator 形成正则表达式

    php - 列出字符类的成员

    mysql - 从 Java 到 mysql 的正则表达式转换为 '?:'

    Ruby:如何从文件中读取正则表达式,然后使用该正则表达式解析字符串?