正则表达式(regular expression)是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
Python 中可以用 re
模块使用正则表达式。
import re # 由于Python的字符串本身也用\转义,所以要特别注意 s = 'ABC\\-001' # Python的字符串 # 对应的正则表达式字符串变成: # 'ABC\-001' # 强烈建议使用Python的r前缀,就不用考虑转义的问题了 s = r'ABC\-001' # Python的字符串 # 对应的正则表达式字符串不变: # 'ABC\-001' if re.match(r'^\d{3}\-\d{3,8}$', '010-12345'): print("match success") # match 成功会返回一个 Match 对象,否则返回 None # 使用预编译提高效率 re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$') re_telephone.match('010-12345').groups() # ('010', '12345')