正则表达式笔记

对字符串操作的逻辑公式。

语法规则
.匹配除\n之外的字符
\转义符,使用r
[…]字符集,任意字符,可逐个列出,可范围
[^…]取反
预定义字符集,可写在[…]中
\d[0-9]
\D[^\d]
\s空白字符,\t \r \n \f \v
\S非空白字符[^\s]
\w单词字符[A-Z a-z 0-9]
\W非单词字符[^\w]
数量词
*大于等于零次
+大于等于一次
0或1
{m,n}m到n次
*?非贪婪模式
边界匹配
^匹配字符串开头
$匹配字符串结尾
\A仅匹配开头
\Z仅匹配结尾
\b匹配\w和\W之间
\B[^\b]
逻辑,分组
|左右分别匹配,或
(…)分组,编号+1
(?P<name>…)分组指定别名
\<name>引用编号为number的分组匹配
(?P=name)引用别名<name>
特殊构造
(?:…)不分组版
(?#…)注释
(?=…)之后匹配
(?!..)之后不匹配
(?<=…)之前匹配
(?<!..)之前不匹配
(?(id/name) yes|no)如果id name匹配到,匹配yes

#贪婪模式:匹配到尽可能多的字符。abbbc→ab→abbb
非贪婪模式:abbbc→ab?→a
#反斜杠:\\ = r’’

Python.re

使用pattern匹配,通过compile编译成pattern对象,匹配。

re.compile(string [,flag])

flag:
re.I:忽略大小写
re.M:多行模式
re.S:点任意匹配,会匹配到换行符
re.L:使用预定字符类
re.U:使用Unicode
re.X:多行,忽略空白,加入注释

re.match(pattern)

从头开始,匹配完成时停止。

pattern = re.compile(r'hello')
result = re.match(pattern, 'hello world!')
if result:
	print(result.group())
else:
	print('fail')
re.start()
re.end()
re.span([group])	#返回(start(),end())
re.expand(r'\2 \1\3')	#world hello!
#取出含‘o’的单词
string='together,we did not do it'
print(re.findall('\w*o\w*',string,re.I))
#将符号,字母删除
string='你在干a啥?'
print(re.sub('[,.、a-zA-Z0-9())','',string)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值