关于python正则表达式场景收集(二)

本期收录正则表达式场景包括整数、IP和URL、身份证和邮编、账号密码合法性判断,部分经过测试后做了修改和完善,绝大多数正则表达式还是有很多优化空间的,关于?=之类的断言目前还谈不上掌握,慢慢摸索吧。


代码示例

  1. import re

  2. regex_dict = {'整数':'(^(\-|\+)?[1-9][0-9]*$)|^0$',

  3. '正整数':'^(\+)?[1-9][0-9]*$',

  4. '负整数':'-[1-9][0-9]*$',

  5. 'IP地址':'^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$',

  6. 'URL地址':'((http:|ftp:|https:|)\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?',

  7. '身份证号码':'(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)',

  8. '中国邮政编码':'^[1-9]\d{5}$',

  9. '帐号是否合法':'^[a-zA_Z][a-zA-Z0-9_]{4,19}$',

  10. '密码合法性':'^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{4,12}$'

  11. }

  12. data='25.1999.0.0'

  13. res = re.search(regex_dict['IP地址'], data)

  14. print(res)

  15. data='www.baidu.com'

  16. res = re.search(regex_dict['URL地址'], data)

  17. print(res)

  18. data='ftp://www.baidu.com:8080'

  19. res = re.search(regex_dict['URL地址'], data)

  20. print(res)

  21. data='http://baidu.com/aaa=?'

  22. res = re.search(regex_dict['URL地址'], data)

  23. print(res)


  24. data='401112198303030052'

  25. res = re.search(regex_dict['身份证号码'], data)

  26. print(res)

  27. data='410111830303052'

  28. res = re.search(regex_dict['身份证号码'], data)

  29. print(res)

  30. data='401112198314030052'

  31. res = re.search(regex_dict['身份证号码'], data)

  32. print(res)

  33. data='4011121983030300521'

  34. res = re.search(regex_dict['身份证号码'], data)

  35. print(res)

  36. data='4444444'

  37. res = re.search(regex_dict['中国邮政编码'], data)

  38. print(res)

  39. data='4444444'

  40. res = re.search(regex_dict['密码合法性'], data)

  41. print(res)

  42. data='Wbq11111*!'

  43. res = re.search(regex_dict['密码合法性'], data)

  44. print(res)



相关文章