【问题标题】:Python Regex - Match Number Hyphen NumberPython 正则表达式 - 匹配号码连字符号
【发布时间】:2017-04-25 02:22:33
【问题描述】:

尝试找到正确的正则表达式来匹配一个(2 或 3)位数字,后跟一个连字符,然后是一个(9、10 或 11)位数字。

总共有六 (6) 种可能的字符串排列。

##-######### (2-9)
##-########## (2-10)
##-########### (2-11)
###-######### (3-9)
###-########## (3-10)
###-########### (3-11)

【问题讨论】:

  • 负数值呢?
  • @MateuszKleinert 好电话!在这种情况下不会出现负数值。

标签: python regex


【解决方案1】:

您的正则表达式将如下所示:\d{2,3}-\d{9,11}

  • \d代表0-9
  • {x,y} 是前面的字符重复的次数

【讨论】:

    【解决方案2】:

    你能试试这个表达吗:

    r'\d{2,3}-\d{9,11}'
    

    【讨论】:

      【解决方案3】:

      我相信正确的正则表达式答案是r"([2-3])(-)(9|(1(?:0|1)))"

      import re
      string = "23-11315310"
      match = re.findall( r"([2-3]-)(9|(1(?:0|1)))", string )
      matched = []
      for i in range( len(match) ):
          matched.append( match[i][0] + match[i][1] )
      print( matched )
      

      字符串"23-11315310" 输出: ['3-11'] 字符串"23-92-113-105-702-052-153-10" 输出: ['3-9', '2-11', '3-10', '3-10']

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-18
        • 1970-01-01
        • 2023-03-29
        • 2012-01-11
        • 2016-08-08
        • 2010-12-16
        • 1970-01-01
        • 2017-07-02
        相关资源
        最近更新 更多