Pulpcode

捕获,搅碎,拼接,吞咽

0%

正则表达式基础

基础:

匹配字符元字符:

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>"

# 方式1:
result = re.search( r'<sign>(.*)</sign>', s)
return result.group(1)

# 方式2:
m = re.compile(r'<sign>(.*)</sign>')
result = re.match(m, s)
return result.group(1)