regrex pattern

re.compile(pattern, flags=0) |构造方法,将正则表达式的字符串编译为一个 正则表达式对象 (正则对象)

应用

1.^$

^hello
hello world中的hello复合规则,但是word\nhello中的hello则不符合规则
开启re.multiline模式后,world\nhello中的hello也符合规则。

分组

引用’quote’引用的方法
在正则表达式中(?P=quote) \1
在匹配的结果中m.group('quote') m.end('queto')
在re.sub中的repl里\g<quote> \g<1> \1

api

1.元字符

符号描述
.1.默认模式匹配除换行符外所有字符;2.flag=DOTALL时则匹配所有字符包含换行符
\w匹配字符
\s空白字符,[ \t\n\r\f\v]
\d十进制数,相当于[0-9]
\D\d相反,非十进制数[^0-9]
\S非空白字符
\W匹配非字符

2.限定符

符号描述
*匹配前面字符或RE的0次或多次
+匹配前面字符或RE的1次或多次
?匹配前面字符或RE的0次或1次
{m}匹配前面字符m次
{m,n}匹配前面字符m到n次
{m,n}?非贪婪匹配

3.限位符

符号描述
^1.匹配字符串开始位置;2.在MULTILINE模式下每个换行符后立即匹配
$1.匹配字符串结束位置;2.在MULTILINE模式下每个换行符后立即匹配
\b匹配空字符串r’\bfoo\b’匹配’foo’, ‘foo.’, ‘(foo)’, ‘bar foo baz’ but not ‘foobar’ or ‘foo3’.
\B\b相反,r’py\B’ matches ‘python’, ‘py3’, ‘py2’, but not ‘py’, ‘py.’, or ‘py!’.
\Z只匹配字符串的末尾。只能放在正则表达式末尾
\A只匹配字符串的开头。只能放在正则表达式开头

4.贪婪与懒惰

符号描述
*?, +?, ??消除贪婪模式,’ b ‘,<.*>非贪婪模式下为’’

5.分组

符号描述
(...)在匹配完成后可以检索组的内容,并且可以在后面的字符串中使用\number特殊序列进行匹配
\number匹配相同编号的组的内容。 例如(.+) \1 这个式子等价于(.+) (.+)
(?P<name>...)与常规圆括号类似,但可以通过符号组名称来访问与该组匹配的子字符串。
(?P=name)对指定组的引用

6.零宽断言

符号描述
(?=...)如果…末尾有…才匹配,例如, Isaac(?=Asimov) 只有跟随着’Asimov’才会匹配’Isaac’。
(?!...)如果…末尾没有…才匹配,例如,Isaac(?!Asimov)只有在没有跟随’Asimov’时才会匹配’Isaac’。
(?<=...)如果开头有…才匹配,
(?<!...)如果开头没有…才匹配
(?(id/name)yes-pattern|no-pattern)

7.取其一

符号描述
[]1.匹配包含的任意一个;2.匹配范围,比如[a-z]匹配a到z的任意一个,[0-5][0-9]匹配0059,[0-9A-Fa-f]匹配十六进制,-转义或在开始或结束匹配一个字母
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
A|B逻辑或,匹配到A或B既停止

8.转义

符号描述
\转义,在字符串前添加r会取消转义

9.注释

(?#...)

参考:
https://www.jianshu.com/p/147fab022566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值