【问题标题】:What do comma separated numbers in curly braces at the end of a regex mean?正则表达式末尾大括号中的逗号分隔数字是什么意思?
【发布时间】:2013-06-10 21:09:31
【问题描述】:

我正在尝试理解以下正则表达式,我理解了最初的部分,但我无法弄清楚 {3,19} 在这里做什么:

/[A-Z][A-Za-z0-9\s]{3,19}$/

【问题讨论】:

  • 表示长度在 3 到 19 之间
  • 如果您想了解更多信息。点击regex标签并点击“了解更多”
  • 请注意A-Za-z0-9\w 相同,除了\w 还包括下划线,无论如何人们通常也希望允许,或者不介意包括在内,因为它使更容易阅读。所以就像评论一样,这更好:/[A-Z][\w\s]{3,19}$/。这是一个单词或句子(包括数字),必须以大写字母开头,后面必须跟三到十九个字符,可以是单词字符或空格的任意组合。

标签: regex


【解决方案1】:

这是称为量词的自定义重复操作。

\d{3} 将准确找到三位数字。

[a-c]{1,3} 将发现任何出现的 a、b 或 c 至少一次,但最多 3 次。

\w{0,1} 表示可以选择查找单词字符。这与放置问号相同,例如:\w?

(\d\w){1,} 将找到数字后跟单词字符的任意组合至少一次,但最多无限次。所以它会匹配1k1k2k4k1k5j2j9k4h1k5k 这与加号相同,例如:(\d\w)+

b{0,}\d 可以选择查找字母 b 后跟一个数字,但也可以匹配无限字母 b 后跟一个数字。所以它将匹配5b5,甚至bbbbbbb5。这与星号相同。例如:b*\d

Quantifiers

【讨论】:

  • 感谢@Sunamere,这是一个很好的解释。现在明白了。
【解决方案2】:

它们是 'quantifiers' - 这意味着“匹配先前的模式 3 到 19 次”

当你学习正则表达式时,它真的很适合在一个可以突出匹配项的交互式工具中使用它们。我一直很喜欢一个名为Regex Coach 的工具,但它仅适用于Windows。虽然有很多在线工具 - 使用您的正则表达式 here, for example

【讨论】:

  • 那么这是否意味着例如在长字符串 'abcefghABCdsadgdgsdfsaa' 中,这将尝试匹配从索引 3 开始到索引 19 的模式
  • 否 - 模式将从第一个大写字母开始,然后匹配 3 到 19 个字母数字或空格 - 因为它是贪婪的,它会尽可能多地匹配,但它必须匹配至少 3 个
  • @sagar: {n,m}?*+ 相似(它是一个量词),但不是只匹配一次、零次或多次,或者一次或多次,它至少匹配n 次和最多m 次。查看 Paul 链接到的文档。也看看regular-expressions.info/repeat.html
【解决方案3】:

{n,m} 表示“至少重复前一个元素n 次,最多重复m 次”,因此表达式
[A-Za-z0-9\s]{3,19} 表示“匹配 3 到 19 个字符,即字母、数字、或空格”。请注意,默认情况下重复是贪婪的,因此这将尝试匹配该范围内尽可能多的字符(这在这里不起作用,因为行尾锚使得它实际上只有一种可能性匹配)。

【讨论】:

【解决方案4】:

您那里的正则表达式/[A-Z][A-Za-z0-9\s]{3,19}$/ 分解为:

[A-Z]我们正在寻找一个大写字母

紧随其后

[A-Za-z0-9\s]{3,19} 一系列介于 3 到 19 个字符之间的字母、数字或空格

$然后行尾。

【讨论】:

    【解决方案5】:

    它必须匹配 [A-Za-z0-9\s] 3 到 19 次。

    这是一个很好的正则表达式参考指南:

    http://www.regular-expressions.info/reference.html

    【讨论】:

      【解决方案6】:

      正则表达式末尾大括号中逗号分隔的数字是什么意思

      它表示具有大括号中指定范围的量词。

      花括号类似物与参数一起使用。我们可以指定单个整数或两个整数作为两个数字之间的范围。

      /[A-Z][A-Za-z0-9\s]{3,19}$/
      

      使用在线正则表达式网站我们可以得到如下理解:

      https://regex101.com/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多