利用非正则表达式在字符串中查找电话号码。
查号码.py
def isPhoneNumber(text):
if len(text) !=12:
return False
for i in range(0,3):
if not text[i].isdecimal():
return False
if text[3] != '-':
return False
for i in range(4,7):
if not text[i].isdecimal():
return False
if text[7] != '-':
return False
for i in range(8,12):
if not text[i].isdecimal():
return False
return True
print('415-555-4242 is a phone number:')
print(isPhoneNumber('415-555-4242'))
print('Moshi moshi is a phone number:')
print(isPhoneNumber('Moshi moshi'))
message = 'Call me at 415-555-3333 tomorrow. 415-555-4223 is my office.'
for i in range(len(message)):
chunk = message[i:i+12]
if isPhoneNumber(chunk):
print('Phone number found: ' + chunk)
print('Done')
运行结果
415-555-4242 is a phone number:
True
Moshi moshi is a phone number:
False
Phone number found: 415-555-3333
Phone number found: 415-555-4223
Done
借助正则表达式在字符串中查找电话号码。
>>> import re
>>> phoneNumRegrx = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
>>> mo = phoneNumRegrx.search('My number is 415-555-4242.')
>>> print("phone number found: "+ mo.group())
phone number found: 415-555-4242
>>>
借助正则表达式在字符串中查找带区号的电话号码。
>>> import re
>>> phoneNumRegrx = re.compile(r'(\(\d\d\d\)) (\d\d\d-\d\d\d\d)')
>>> mo = phoneNumRegrx.search('My number is (415) 555-4242.')
>>> mo.group(1)
'(415)'
>>> mo.group(2)
'555-4242'
>>> mo.group()
'(415) 555-4242'
>>>