Python正则表达式 - 匹配编号连字符号

时间:2017-04-25 02:22:34

标签: python regex

尝试找到正确的Regex表达式以匹配(2或3)数字后跟连字符后跟(9,10或11)数字。

总之,字符串有六(6)种潜在的排列。

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

你能试试这个表达式吗?

<?xml version="1.0" encoding="utf-8"?>

    <packages>
      <package id="WindowsAzure.ServiceBus" version="4.0.0" targetFramework="net452" />
    </packages>

答案 2 :(得分:0)

我相信正确的正则表达式答案是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']