【问题标题】:Regular expression: Define max length of string, with repeated groups正则表达式:定义字符串的最大长度,重复组
【发布时间】:2014-11-27 12:41:01
【问题描述】:

标题可能会令人困惑,但我会尝试用一些例子来解释。 这是我现在的表达方式。

^([A-ZÆØÅ][a-zæøå]+[\s-]{1}){2,20}$

我想要一个匹配这些的表达式: 所以一般规则是,

-每个单词都必须以大写字母开头

-跟在大写字母后面只能是小写字母

-最多可以有一个-或一个空格

还有最难的部分, 在这些的每一种组合中,我希望最后一行最多为 20 个字符

我想要一个匹配这些的表达式:

April-Can Æøå
An-An-An An An-An
Aaaaabbbbbcccccddddd
Aaa

不匹配

andkas
Andfak-lkakad
AppleApple
Carrotcarrotcarrotcarrotcarrotcarrot
Banana- Banana
Apple-apple-apple-apple-apple banana banana apple carrot

【问题讨论】:

    标签: regex regex-group


    【解决方案1】:

    使用前瞻:

    ^(?=.{2,20}$)[A-ZÆØÅ][a-zæøå]+(?:[\s-][A-ZÆØÅ][a-zæøå]+)*$
    

    地点:

    (?=.{2,20}$) 确保您的字符串中有 2 到 20 个字符。
    然后你有一个以大写字母开头的单词,最后是空格或破折号和另一个单词。它可能有几个词

    【讨论】:

      【解决方案2】:

      你可以使用这个正则表达式:

      ^([A-ZÆØÅ][a-zæøå]{1,19}[\s-])*[A-ZÆØÅ][a-zæøå]{1,19}$
      

      RegEx Demo

      【讨论】:

      • 匹配长度超过 20 个字符的字符串。
      • 第一组长度不限:-(
      • 抱歉,这不正确。 OP 希望整行少于 20 个字符。
      • 哦,我想我对我希望最后一行最多为 20 个字符这里的 final line 到底是什么感到困惑?跨度>
      • 哦,抱歉迟到了,@M42 是正确的,我的意思是我希望整行最多 20 个字符。但是感谢您的帮助:)!
      猜你喜欢
      • 2017-04-05
      • 2014-04-23
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2012-03-02
      • 2014-05-12
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多