正则表达式

首先使用

patt = re.compile(r"regex")

编译模式,其中

字符含义
.除回车外的任意字符
|
?零到一次
+一次及以上
*零次及以上
\A 或 ^字符串开头
\Z 或 $字符串结尾
\b单词边界
\B非单词边界
[^ …]不匹配该集合中的任何字符
{N}精确匹配N次
{M, N}匹配M到N次
{?M, N}匹配M到N次,不贪婪
()分组
\nn数字表示分组的原始字符串
\s所有空白符、分隔符
\S非空白符
\d数字
\D非数字
\w数字和字母
\W非数字或字母


(?=…) 仅当…匹配下一个时才认为当前匹配,不消耗
(?! …) 仅当…不匹配下一个时才认为当前匹配,不消耗
(?<=…) 仅当…匹配前一个(及当前一个)时才认为当前匹配,不消耗
(?< !…) 仅当…不匹配前一个(及当前一个)时才认为当前匹配,不消耗
例如
[^0-9]+(?<!\n) 匹配所有非数字非回车


然后用patt的成员函数匹配

  • 返回匹配对象Match 未找到返回None
    search 寻找一次匹配
    match 从开头直接匹配

  • 返回字符串
    findall 所有匹配,返回str list
    split 用模式进行分割 返回剩下的str list
    sub(repl, string) 替换 返回字符串
    sub(repfunc, string) 每找到一个匹配就作为参数传入函数 repfunc

  • Match对象的函数
    group() = group(0) 返回匹配的字符串整体
    group(N) 对应模式中的第N个括号的匹配内容
    groups() 返回各个括号匹配内容的tuple
    start() end() = start(0) end(0) 起始、结尾在字符串上的索引
    start(N) end(N) 第N组的索引

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值