正则表达式:
r'''(
(\d{3}|\(\d{3}\))? #area code
(\s|-|\.)? #seperator
(\d{3}) #first three digits
(\s|-|\.) #seperator
(\d{4}) #last four digits
(\s*(ext|x|ext.)\s*(\d{2,5}))? #extension
)''', re.VERBOSE
输入:
415-863-9900 ext 23123
输出:
总结分组规则:
- 最外层() 匹配group(0) -----0
- 其他的开始正常匹配 ------ 1-5
- 然后到
(\s*(ext|x|ext.)\s*(\d{2,5}))?
(\s*(ext|x|ext.)\s*(\d{2,5}))?
的全部匹配 ------6
开始匹配里面的值 --------7-8
7对应(ext|x|ext.)
8对应(\d{2,5})
这个是匹配 空字符 零次或多次 + ext + 空字符 零次或多次 +数字2-5个
网友评论