正则表达式最常用的符合和字符:
记号 | 说明 | 正则表达式样例 |
---|---|---|
re1|re2 | 管道符号“|”,“或”操作 | foo|bar |
. | 匹配任意一个单个字符 | b.b |
^ | 匹配字符串的开始 | ^abc |
* | 匹配零次或多次 | *sh |
+ | 匹配一次或多次 | [a-z]+.com |
? | 匹配零次或一次 | goo? |
{N} | 匹配前面出现的正则表达式N | [0-9]{3} |
{M,N} | 匹配重复出现M次到N次的正则表达式 | [0-9]{3,5} |
[...] | 匹配字符组中出现的任意字符 | [sdej] |
[x-y] | 匹配从x到y的任意一个字符 | [0-9a-z] |
[^...] | 不匹配此字符集中出现的任何字符 | [^a-z] |
(*|+|?|{})? | 重复匹配次数符号 | .*?[a-z] |
(...) | 匹配括号中的正则表达式 | ([0-9]{3})? |
\d | 匹配任意任何数字 | data\d+.txt |
\w | 匹配任意数字字母字符 | [a-zA-Z]\w+ |
\s | 匹配任意空白字符 | game\s+over |
\b | 匹配单词边界 | \bthe\b |
$ | 匹配字符串的结尾 | *sh$ |
Python使用的正则表达式是Perl5风格的,主要是使用re模块来对正则表达式进行使用。
re模块
方法 | 描述 |
---|---|
compile(pattern, flags=0) | 对正则表达式模式pattern进行编译 |
match(pattern, string, flags=0) | 用正则表达式pattern匹配string,返回匹配的对象 |
search(pattern, string, flags=0) | 在字符串string中搜索正则表达式pattern中第一次出现的字符串 |
findall(pattern, string, [,flags]) | 在字符串string中搜索正则表达式匹配的所有字符串 |
finditer(pattern, string, [,flags]) | 和findall()相同,但返回的不是列表而是迭代器 |
split(pattern, string, max=0) | 根据正则表达式pattern中的分隔符将字符string分割成一个列表 |
sub(pattern, repl, string, max=0) | 把字符串string中所有匹配正则表达式pattern的地方替换成字符串repl |
group(num=0) | 返回全部匹配对象 |
groups() | 返回一个包含全部匹配的子组的元组 |