正则表达式
正则表达式中不可以随意添加空格
import re
匹配通常是原始字符串
通配符:. 匹配除了换行符的任何字符
\. 代表 . 字符
\d 匹配数字]
| 逻辑或
() ()中的字符当作一个整体
元字符:拥有其他功能的字符
字符类:r'[aeiou]',匹配其中任何一个字符,匹配一次,[a-z]:表示范围
匹配次数:
r'ab{3}c' b会匹配三次
r'ab{3-10}c' 给定匹配次数的范围
例:匹配IPv4地址
re.search('(([01]\d\d|2[0-4][0-5]|25[0-5]|\d\d|\d)\.){3}([01]\d\d|2[0-4][0-5]|25[0-5]|\d\d|\d)', '192.168.2.5')
字符匹配:
元字符:
. ^ * + ? {} [] \ | ()
[]:
在[]中依然是元字符:^ - \
[^5]#匹配除了5之外的所有字符
[$]#不代表元字符$
\:
\+元字符:去掉特殊功能
\+普通字符:实现特殊功能
\1 表示引用前边成功匹配的序号为 1 的子组 ,反向引用
\八进制代码,表示匹配八进制数代表的字符
re.DOTALL 标志 :使.匹配所有字符,包括换行符
re.ASCII 标志 :使\w匹配只能匹配ASCII
*:
用于指定*前一个字符匹配0次或多次
+:
用于指定前一个字符匹配一次或多次
?:
用于指定前一个字符匹配0次或一次
{m, n}:
用于指定前一个字符必须匹配m次到n次之间,默认0/∞
在表示重复的字符后:?表示非贪婪模式,不会尽可能匹配多的字符
零宽断言:
有些元字符它们不匹配任何字符,只是简单地表示成功或失败
\b 表示当前位置位于单词边界
| 或操作符,对两个正则表达式进行或操作
使用 \| 来匹配 '|' 字符本身;或者包含在一个字符类中,[|]
^ 匹配字符串的起始位置。如果设置了MULTILINE标志,就会变成匹配每一行的起始位置。在
MULTILINE中,每当遇到换行符就会立刻进行匹配
$ 匹配字符串的结束位置,每当遇到换行符也会离开进行匹配
使用 \$ 来匹配 '