"." |
匹配除换行符以外的任何字符 |
re.findall('.','abcbcd') |
['a', 'b', 'c', 'b', 'c', 'd'] |
"^" |
匹配字符串的开头 |
re.findall('^a','abcbcd') |
['a'] |
"$" |
匹配字符串末尾或字符串末尾换行符之前 |
re.findall('d$','abcbcd') |
['d'] |
"*" |
匹配前一个re的0个或多个(贪婪的)重复。贪婪意味着它将尽可能多的重复匹配 |
re.findall('b*','abcbcd') |
['', 'b', '', 'b', '', '', ''] |
"+" |
匹配前面的1次或多次(贪婪的)重复 |
re.findall('bc+','abcbcd') |
['bc', 'bc'] |
"?" |
匹配前面re的0或1(贪婪) |
re.findall('bc?','abcbcd') |
['bc', 'bc'] |
*?,+?,?? |
前三个特殊字符的非贪婪版本 |
re.findall('b*?','abcbcd') re.findall('bc+?','abcbcd') re.findall('bc??','abcbcd') |
['', '', 'b', '', '', 'b', '', '', ''] ['bc', 'bc'] ['b', 'b'] |
{m,n} |
从m到n的匹配重复前面的re |
re.findall('bc{0,1}','abcbcd') |
['bc', 'bc'] |
{m,n}? |
上面的非贪婪版本 |
re.findall('bc{0,1}?','abcbcd') |
['b', 'b'] |
"\" |
要么转义特殊字符,要么发出特殊序列的信号 |
|
[] |
表示一组字符,作为第一个字符的“^”表示补集 |
re.findall('[bc]','abcbcd') re.findall('[^bc]','abcbcd') |
['b', 'c', 'b', 'c'] ['a', 'd'] |
"|" |
A B,创建一个与A或B匹配的RE |
re.findall('b |
c','abcbcd') |
['b', 'c', 'b', 'c'] |
(...) |
匹配括号内的re。可以在以后的字符串中检索或匹配内容 |
re.findall('(bc)','abcbcd') |
['bc', 'bc'] |
(?aiLmsux) |
设置RE的A、I、L、M、S、U或X标志(见下文) |
|
(?:...) |
常规括号的非分组版本 |
re.findall('(?:bc)','abcbcd') |
['bc', 'bc'] |
(?P<name>...) |
组匹配的子字符串可以通过名称访问 |
re.findall('(?P<bc>...)','abcbcd') |
['abc', 'bcd'] |
(?P=name) |
与前面名为name的组匹配的文本匹配 |
|
(?#...) |
注释;忽略 |
re.findall('..(?#bc)','abcbcd') |
['ab', 'cb', 'cd'] |
(?=...) |
匹配如果…匹配下一个,但不使用字符串 |
re.findall('.(?=.)','abcbcd') |
['a', 'b', 'c', 'b', 'c'] |
(?!...) |
匹配如果…不匹配下一个 |
res = re.findall('.(?!.)','abcbcd') |
['d'] |
(?<=...) |
如果前面有…(必须为固定长度) |
re.findall('.(?<=bc)','abcbcd') |
['c', 'c'] |
(?<!...) |
如果前面没有匹配…(必须为固定长度) |
re.findall('.(?<!bc)','abcbcd') |
['a', 'b', 'b', 'd'] |
(?(id/name)yes|no) |
匹配是模式如果ID/名称匹配的组,则为(可选)否模式,否则为 |
|
\number |
匹配同一号码组的内容 |
|
\A |
仅在字符串开头匹配 |
re.findall('\A123','123123') |
['123'] |
\Z |
仅在字符串末尾匹配 |
re.findall('23\Z','123123') |
['23'] |
\b |
匹配空字符串,但仅在单词的开头或结尾 |
|
\B |
匹配空字符串,但不在单词的开头或结尾 |
|
\d |
匹配任何十进制数字;相当于带有ASCII标志的集合[0-9]内字节模式或字符串模式 |
re.findall('\d','123456') |
['1', '2', '3', '4', '5', '6'] |
\D |
匹配任何非数字字符;相当于[^\d] |
re.findall('\D','a123b') |
['a', 'b'] |
\s |
atches任何空白字符;相当于字节模式中的[\t\n\r\f\v]或带ASCII标志的字符串模式。在不带ASCII标志的字符串模式中,它将匹配整个Unicode空白字符范围。 |
|
\S |
匹配任何非空白字符;相当于[^\s] |
|
\w |
匹配任何字母数字字符;相当于字节模式中的[A-ZA-Z0-9 UUU]或带ASCII标志的字符串模式。在不带ASCII标志的字符串模式中,它将匹配Unicode字母数字字符(字母加数字加下划线)的范围。在区域设置中,它将匹配集[0-9 UUU]加上定义的字符。作为当前区域设置的字母。 |
|
\W |
匹配\w的补码 |
|
\|匹配文字反斜杠 |
|
网友评论