语法 | 说明 |
---|---|
字符 | |
. | 匹配任意字符,除换行符"\n”外 |
\ | 转义字符,使后面一个字符失去特殊意思 |
[...] | 字符集。^表示取反。 |
预定义字符集(可以写在字符集[...]中) | |
\d | 数字:[0-9] |
\D | 非数字:[^\d] |
\s | 空白字符:[<空格>\t\r\n\f\v] |
\S | 非空白字符:[^\s] |
\w | 单词字符:[A-Za-z0-9_] |
\W | 非单词字符:[^\w] |
数量词(用在字符或(…)之后) 匹配前一个字符...次 | |
* | 0次或无限次 |
+ | 1次或无限次 |
? | 0次或1次 |
{m} | m次 |
{m, n} | m至n次 m n可以省略:若省略m,则匹配0至n次;若省略n,则匹配m至无限次 |
*?+???{m, n}? | 使*+?{m, n}变成非贪婪模式 |
边界匹配(不消耗待匹配字符串中的字符) | |
^ | 字符串开头或多行模式中每一行的开头 |
$ | 字符串末尾或多行模式中每一行的末尾 |
\A | 仅匹配字符串开头 |
\Z | 仅匹配字符串末尾 |
\b | 匹配\w和\W之间 |
\B | [^\b] |
逻辑、分组 | |
| | 任意匹配左右表达式。先左,若成功匹配则跳过匹配右边。若|不在()中,范围是整个正则表达式 |
(...) | 括号内的表达式作为分组,每一个括号的编号+1。可以后接数量词 |
(?P<name>...) | 除了原有的编号外,再指定一个额外的别名 |
\<number> | 引用编号为<number>的分组匹配到的字符串 |
(?P=name) | 引用别名为<name>的分组匹配到的字符串 |
import re
# 将正则表达式编译成pattern对象
pattern = re.compile(r'hello')
# 使用pattern匹配文本,获得匹配结果,无法匹配时则返回None
match = pattern.match('hello world!')
if match:
# 使用match获得分组信息
print(match.group())
hello
同义简写:
import re
m = re.match(r'hello','hello world!')
print(m.group())
re.compile(strPattern[,flag]):
flag的可选值有:
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。