基础:
匹配字符元字符:
1 2 3 4 5 6 7 8 9 10 11
| . 匹配除了换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \W 匹配不是字母或数字或下划线或汉字 \s 匹配任意的空白符,包括空格,制表符,换行符,中文全角空格 \S 匹配任意的不是空白符,包括空格,制表符,换行符,中文全角空格 \d 匹配数字 \D 匹配不是数字 \b 匹配单词的开始或结束 \B 匹配不是单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束
|
匹配数量元字符:
1 2 3 4 5 6 7
| * 重复零次或更多次 + 重复一次或更多次 ?重复零次或一次(懒惰) {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n次到m次
|
re.compile可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。
unicode的正则,需要unicode去匹配,所以建议先编码encode。
一些python例子:
如何使用python通过正则表达式获取字符串?
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import re """ 注意group(0)是其本身 """ s = "<sign>aiqier</sign>"
result = re.search( r'<sign>(.*)</sign>', s) return result.group(1)
m = re.compile(r'<sign>(.*)</sign>') result = re.match(m, s) return result.group(1)
|