一。关键在于将信息写成一个正则表达式。我们先看正则表达式的常用语法:
1)单个字符:
. 匹配除换行之外的任意的一个字符
a|b 字符a或字符b
[afg] a或者f或者g的一个字符
[0-4] 0-4范围内的一个字符
[a-f] a-f范围内的一个字符
[^m] 不是m的一个字符
\s 一个空格
\S 一个非空格
\d [0-9]
\D [^0-9]
\w [0-9a-zA-Z]
\W [^0-9a-zA-Z]
2)重复
紧跟在单个字符之后,表示多个这样类似的字符
* 重复 >=0 次
+ 重复 >=1 次
? 重复 0或者1 次
{m} 重复m次。比如说 a{4}相当于aaaa,再比如说[1-3]{2}相当于[1-3][1-3]
{m, n} 重复m到n次。比如说a{2, 5}表示a重复2到5次。小于m次的重复,或者大于n次的重复都不符合条件。
正则表达 相符的字符串举例
[0-9]{3,5} 9678 匹配0-9的数字3个到5个之内
a?b b 或 ab
a+b aaaaab
3) 位置
^ 字符串的起始位置,表示匹配必须放生在被查找文本开始处。
例如: ^spam 意味着字符串必须以spam开始
$ 字符串的结尾位置,表示该字符串必须以这个正则表达式的模式结束。
例如:spam$ 意味着字符串必须以spam结尾
正则表达 相符的字符串举例 不相符字符串
^ab.*c$ abeec cabeec (如果用re.search(), 将无法找到。)
注意:在方括号内,普通的正则表达式符号不会被解释,就是说,不需要在前面加上倒斜杠转义?,(),*等字符。
