test4.py 984 B

123456789101112131415161718192021222324252627
  1. import re
  2. def main():
  3. # 创建正则表达式对象 使用了前瞻和回顾来保证手机号前后不应该出现数字
  4. pattern = re.compile(r'(?<=\D)(1[38]\d{9}|14[57]\d{8}|15[0-35-9]\d{8}|17[678]\d{8})(?=\D)')
  5. sentence = '''
  6. 重要的事情说8130123456789遍,我的手机号是13512346789这个靓号,
  7. 不是15600998765,也是110或119,王大锤的手机号才是15600998765。
  8. '''
  9. # 查找所有匹配并保存到一个列表中
  10. mylist = re.findall(pattern, sentence)
  11. print(mylist)
  12. print('--------华丽的分隔线--------')
  13. # 通过迭代器取出匹配对象并获得匹配的内容
  14. for temp in pattern.finditer(sentence):
  15. print(temp.group())
  16. print('--------华丽的分隔线--------')
  17. # 通过search函数指定搜索位置找出所有匹配
  18. m = pattern.search(sentence)
  19. while m:
  20. print(m.group())
  21. m = pattern.search(sentence, m.end())
  22. if __name__ == '__main__':
  23. main()