正则表达式
元字符
模式 | 描述 |
---|
. | 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾 |
* | 匹配0个或多个的表达式 |
+ | 匹配1个或多个的表达式 |
? | 匹配0个或1个 |
{m} | 匹配指定m次 |
{m.n} | 匹配指定m~n次 |
[] | 中间可以跟一个字符串,只要一个字符匹配就匹配 |
a|b | 匹配a或b |
\d | 匹配任意数字,等价于 [0-9] |
\D | 匹配任意非数字 |
\s | 匹配任意空白字符,等价于 [\t\n\r\f] |
() | 分组 |
^$ | 空行 |
.*? | 不使用贪婪模式 |
代码高亮
# 正则表达式
import re
p = re.compile('...')
print(p.match('bat'))
# print(r'\nx\n')
p = re.compile(r'(\d+)-(\d+)-(\d+)')
print(p.match('2018-04-26'))
print(p.match('2018-04-26').groups())
year, month, day = p.match('2018-04-26').groups()
print(year)
print(p.search('aaa2018-04-26bb'))
print(re.sub(r'c', '*', 'abc'))
phone = '131-2015-4458 #这是某人的手机号码'
print(re.sub(r'#.*$', '', phone))
p2 = re.sub(r'#.*$', '', phone)
print(re.sub(r'\D', '', p2))