python学习笔记----正则表达式
程序员文章站
2022-04-20 12:45:10
python学习笔记 正则表达式 标签: python 特殊符号和字符 | 符号 | 描述 | 示例 | |: |: |: | |literral|匹配文本的字面值literal|foo| |re1\|re2|匹配正则表达式re1或re2|foo\|bar| |.|匹配任何字符(除了\\n以外)|b ......
python学习笔记-正则表达式
标签: python
特殊符号和字符
符号 | 描述 | 示例 |
---|---|---|
literral | 匹配文本的字面值literal | foo |
re1|re2 | 匹配正则表达式re1或re2 | foo|bar |
. | 匹配任何字符(除了\n以外) | b.b |
^ | 匹配字符串起始部分 | ^Dear |
$ | 匹配字符串终止部分 | /bin/*sh$ |
* | 匹配0次或者多次前面出现的正则表达式 | [A-Za-z0-9]* |
+ | 匹配1次或者多次前面出现的正则表达式 | [a-z]+\.com |
? | 匹配0次或1次前面出现的正则表达式 | goo? |
{N} | 匹配N次前面出现的正则表达式 | [0-9]{3} |
{M,N} | 匹配M~N次前面出现的正则表达式 | [0-9]{5,9} |
[...] | 匹配来自字符集的任意单一字符 | [aeiou] |
[..x-y..] | 匹配x-y范围中的任意单一字符 | [0-9],[A-Za-z] |
[^...] | 不匹配此字符集中出现的任何一个字符,包括每一范围的字符(如果则此字符集中出现) | [^aeiou],[^A-Za-z0-9] |
(*|+|?|{})? | 用于匹配上面频繁出现、重复出现符号的非贪婪版本(*、+、?、{}) | .*?[a-z] |
(...) | 匹配封闭的正则表达式,然后另存为子组 | ([0-9]{3})?,f(oo|)bar |
\d | 匹配任何十进制数字,与[0-9]一致(\D与\d相反,不匹配任何非数值型的数字) | data\d+.txt |
\w | 匹配任何字母数字字符,与[A-Za-z0-9]相同(\W与之相反) | [A-Za-z]w+ |
\s | 匹配任何空格字符,与[\n\t\r\v\f]相同(\S与之相反) | of\sthe |
\b | 匹配任何单词边界(\B与之相反) | \bThe\b |
\N | 匹配已保存的子组N(参见上面的(...)) | price:\16 |
\c | 逐字匹配任何特殊字符c(即,仅按照字面意义匹配,不匹配特殊含义) | \.\\,\* |
\A(\Z) | 匹配字符串的起始(结束)(另见扇面介绍的^和$) | \ADear |
扩展表示法 | ||
(?iLmsux) | 在正则表达式中嵌入一个或者多个特殊“标记”参数(或者通过函数/方法) | (?x),(? im) |
(?:...) | 表示一个匹配不用保存的分组 | (?:\w+\.)* |
(?P<name>...) | 向一个仅由name标识而不是数字ID标识的正则分组分配 | (?P<data>) |
()?P=name | 在同一字符串中匹配由(?P=name)分组的之前文本 | (?P=data) |
(?#...) | 表示注释,虽有内容都被忽略 | (?#comment) |
(?=...) | 匹配条件是如果...出现在之后的位置,而不使用输入字符串;称作正向前视断言 | (?=.com) |
(?!...) | 匹配条件是如果...不出现在之后的位置,而不使用输入字符串;称作负向前视断言 | |
(?<=...) | 匹配条件是如果...出现在之前的位置,而不使用输入字符串;称作正向后视断言 | |
(?<!...) | 匹配条件是如果...不出现在之前的位置,而不使用输入字符串;称作负向后视断言 | |
(?(id/name)Y/N) | 如果分组所提供id或者name(名称)存在就返回正则表达式的条件匹配Y,如果不存在,就返回N;|N是可选项 | (?(1)y|x) |
上一篇: 刨根问底
下一篇: 爆笑尬事,笑声特别大