#! /usr/bin/python3
#Find indian phone number in the text entered.
print('Enter text:')
para = input() #user's input
import re
phonenumreg = re.compile(r'[(\+91)|(0)]?[6-9]\d{9}')
no = phonenumreg.findall(para)
print(no) #print list
当我输入'+917087708705
‘并且列表打印'+9170877087'
时,'7087708705
’和'07087708705
‘都可以正常工作。
有人能给我解释一下原因吗?
发布于 2018-05-08 14:51:49
在应该使用(?:)
的地方使用[]
>>> r = re.compile(r'((?:\+91|0)?[6-9]\d{9})')
>>> r.findall('this in my list of numbers: 07087708715 and +917087708715')
['07087708715', '+917087708715']
https://stackoverflow.com/questions/50227399
复制相似问题