【问题标题】:Regex matching exactly 3 or exactly 7 characters [duplicate]正则表达式正好匹配 3 个或 7 个字符 [重复]
【发布时间】:2020-04-29 07:30:29
【问题描述】:

我想匹配 * 之前正好有 3 个字符或正好 7 个字符的字符串(示例如下):

ABC*THIS SHOULD MATCH
ABCDEFG*THIS SHOULD MATCH TOO

ABCD*THIS SHOULD NOT MATCH

以下正则表达式匹配 3 到 7 之间的任意数量的字符,但我不希望这样:

/^\w{3,7}\*(.*)/

【问题讨论】:

  • 如果对完整匹配感兴趣:^(?:[^*]{3}|[^*]{7})\*.*

标签: regex


【解决方案1】:

要匹配 3 个或 7 个字符,您可以先匹配 3 个字符,然后再匹配 4 个;

^[^*]{3}(?:[^*]{4})?\*(.*)

[^*]{3} 匹配 3 个不是星号的字符

(?:[^*]{4})? 可以选择匹配 4 个不是星号的字符。 ?: 使其成为非捕获组,因为您对内容不感兴趣。

Regex101 to test with.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-16
    • 2019-12-13
    • 2017-02-09
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2013-06-03
    • 2016-10-24
    相关资源
    最近更新 更多