利用非正则表达式在字符串中查找电话号码。
查号码.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'
- >>>
转载请注明:大学助 » Python3 两种方式查找字符串里的电话号码
|