语法 | 说明 | 表达式实例 | 完整匹配实例 |
---|---|---|---|
一般字符 | 匹配自身 | abc | abc |
. | 匹配任意除换行符"\n"外的字符。在DOTALL模式中也能匹配换行符 | a.c | abc |
\ | 转义字符,使后一个字符改变原来的意思。如果字符串中有字符*需要匹配,可以使用*字符集[*] | a\.c | a.c |
[...] | 字符集(字符类)。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或者[a-c]。第一个自负如果是则表示取反,如[abc]表示不是abc的其他字符。所有的特殊字符在字符集中都失去其原有的特殊含义。在字符集中如果要使用]、-或,可以在前面加上反斜杠或者把]、-放在第一个字符,把放在非第一个字符。 | a[bcd]e | abe |
\d | 数字:[0-9] | a\dc | a1c |
\D | 非数字: [^\d] | a\Dc | abc |
\s | 空白字符: [<空格>\t\r\n\f\v] | a\sc | a c |
\S | 非空白字符:[^\s] | a\Sc | abc |
\w | 单词字符: [A-Za-z0-9_] | a\wc | abc |
\W | 非单词字符: [^\w] | a\Wc | a c |
* | 匹配前一个字符0或者无限次 | abc | abccccc |
+ | 匹配前一个字符1次或者无限次 | abc | abc |
? | 匹配前一个字符0次或者1次 | abc | ab |
{m} | 匹配前一个字符m次 | ab{2}c | abbc |
{m, n} | 匹配前一个字符m至n次。m核n都可以省略,m省略表示m为0,n省略表示n为无限 | ab{1, 2}c | abc |
^ | 匹配字符串开头。在多行模式中匹配每一行的开头。 | ^abc | abc |
$ | 匹配字符串末尾。在多行模式中匹配每一行的末尾。 | abc$ | abc |
\A | 仅匹配字符串开头 | \Aabc | abc |
\Z | 仅匹配字符串末尾 | abc\Z | abc |
\b | 匹配\w和\W之间 | a\b!bc | a!bc |
\B | [^\b] | a\Bbc | abc |
| | 代表左右表达式任意匹配一个 | abc|def | abc |
(...) | 被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的做括号'(',编号+1。另外,分组表达式作为一个整体,可以后接数量词。表达式中的|尽在改组中有效 | (abc){2}a(123|456)c | abcabca123c |
(?P<name>...) | 分组,除了原有的编号外再指定一个额外的别名 | (?P<id>abc){2} | abcabc |
<number> | 引用编号为<number>的分组匹配到的字符串 | (\d)abc\1 | 1abc1 |
(?P=name) | 引用别名为<name>的分组匹配到的字符串 | (?P<id>\d)abc(?P=id) | 1abc1 |
(?:...) | (...)的不分组版本,用于使用‘|’或后接数量词 | (?:abc){2} | abcabc |
(?!Lmsux) | iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头可选多个。匹配模式将在下文中介绍 | (?!)abc | AbC |
(?=...) | 之后的字符串内容需要匹配表达式才能匹配成功匹配。不消耗字符串内容 | a(?=\d) | 后面是数字的a |
(?#...) | #后的内容将作为注释被忽略 | abc(?#commet) 123 | abc123 |
(?!...) | 之后的字符串内容需要不匹配表达式才能匹配成功匹配。不消耗字符串内容 | a(?!\d) | 后面不是数字的a |
(?<=...) | 之后的字符串内容需要匹配表达式才能匹配成功匹配。不消耗字符串内容 | (?<=\d)a | 前面是数字的a |
(?<!...) | 之后的字符串内容需要不匹配表达式才能匹配成功匹配。不消耗字符串内容 | (?<!\d)a | 前面不是数字的a |
(?(id/name)yes-pattern|no-pattern) | 如果编号为id/别名为name的组匹配到字符,则需要匹配yes-pattern, 否则需要匹配no-pattern。|no-pattern可以省略 | (\d)abc(?(1)\d|abc | 1abc2 |
Python正则表达式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本文主要介绍python中正则表达式的基本用法,做一个初步的认识。 1. 初识 python通过re内置模块来处理...
- 本文主要总结一下python正则的一些内置属性的用法。 1. 编译标志:flags 首先来看一下re.findal...
- Python 正则表达式 正则表达式基础 基本概念: 正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及...