. 匹配除\n换行符之外的任何单个字符。
[ ] 匹配括号中的任何一个字符。 如果要想匹配二十六个英文字母中的任意一个怎么写呢? a[a-z]b 如果也想匹配大写的A—Z的话,需要这么写 a[a-zA-Z]b
| 将两个匹配条件进行逻辑“或”运算。 如a[a|b]b z|food 要么是z,要么是food (z|f)ood 加小括号改变优先级
( ) 将 () 之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域,这个元字符在字符串提取的时候非常有用。把一些字符表示为一个整体。改变优先级、定义提取组两个作用。
元字符2(限定符):
* 匹配0至多个在它之前的子表达式,和通配符*没关系。 如 zoo* ,*表示可以出现0次,也可以出现多次。(可有可无,可多可少)
+ 匹配前面的子表达式一次或多次 如zoo+ ,+表示可以出现一次,或者是多次。(至少得出现一次。) 注意:* +只表示o的出现次数,要是想表示前面的整个表达式,得用小括号括起来。
? 匹配前面的子表达式零次或一次。 如zoo? ,要么0次,要么1次。
{n} 匹配确定的 n 次。
{n,m} 最少匹配 n 次且最多匹配 m 次。
元字符3
^(shift+6) 匹配一行的开始。如^xxx. 表示字符串必须以三个先开头,后面跟任意的单个字符。它还有一个意思就是取反的意思,如 a[^a-zA-Z0-9]b 表示中间去大小写字符和数字都不行。
$ 匹配行结束符。 如xxx.$ 表示结尾必须以xxx加任意字符结束。
接下来我们再看一些个元字符(一些简写的方式):
\d 代表一个数字,等同于[0-9] 如a[0-9]b a\db
\D 代表非数字,等同于[^0-9]
\s 代表换行符、Tab制表符等空白字符 ,(空格、回车、制表符)
\S 代表非空白字符(a0%$@@)
\w 匹配字母或数字或下划线或汉字,即能组成单词的字符,除%&#@!$等字符。[a-zA-Z0-9_汉字]
\W 非\w ,等同于[^\w] %
import re
.* 贪婪匹配,匹配尽可能多
.*? 非贪婪匹配,匹配尽可能少 #字符串中间尽可能用非贪婪,避免结果缺失
import re content1=2016-12-15 12:00 content2=2016-12-17 12:55 content3=2016-12-22 13:21 pattern=re.compile(\d{2):\d(2)) result1 =re. sub(pattern,‘‘,content1) result2=re. sub(pattern,‘‘,content2) result3= re. sub(pattern,‘‘,content3) print(result1,result2, result3)
原文:https://www.cnblogs.com/vector-wyw/p/10417988.html