正则表达式

正则表达式的定义和目的:

正则表达式是一个特殊的字符序列,利用事先定义好的一些特定字符以及它们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。

re模块中findall()方法以列表的形式返回所有能匹配的子串,如果没有找到匹配的,则返回空列表。

元字符:

  1. “.”:表示除换行符以外的任意字符。与“.”类似(但不相同)的一个符号是“\S”,(大写)表示不是空白符的任意字符
    例:
    s='Hello! My name is Jenny.' re. findall( r,'n.',s) [ na, nn ]#匹配i后面跟除换行符以外的任意字符的形式

  2. “[]”:指定字符集,此时元字符在方括号中不起作用
    s='Hello! My number is xx001.' re. findall( r'xx[0-9]', s) [ xx001 ]

  3. “^”:匹配行首,匹配后面的字符开头的字符串

  4. ” : 匹 配 行 尾 , 匹 配 以 ”:匹配行尾,匹配以 之前的字符结束的字符串

  5. “\”:反斜杠后面可以加不同的字符以表示不同的特殊意义
    ①\b匹配单词头或单词尾;
    ②\B与\b相反,匹配非单词头或单词尾;
    ③\d匹配任何十进制数;相当于[0-9];
    ④\D与\d相反,匹配任何非数字字符,相当于[^0-9];
    ⑤\s匹配任何空白字符,相当于[\t\n\r\f\v];
    ⑥\S与\s相反,匹配任何非空白字符,相当于[^\t\n\r\f\v];
    ⑦\w匹配任何字母、数字或下画线字符,相当于[a-zA-Z0-9_];
    ⑧\W与\w相反,匹配任何非字母、数字和下画线字符,相当于[^a-zA-Z0-9_];
    ⑨也可以用于取消所有的元字符:\、[。
    ⑩这些特殊字符都可以包含在[]中。如:[\s,.]将匹配任何空白字符、",“或”."。

  6. ”:匹配位于之前的字符或子模式的0次或多次出现
    例:
    s='a ab abb abbb abbbza' re.findall( r'ab*',s) [a,ab,abb, abbb,abbb,a]

  7. “+”:匹配位于+之前的字符或子模式的1次或多次出现
    s='a ab abb abbb abbbza' re.findall( r'ab+',s) [a,ab,abb, abbb,abbb,a]

  8. “?”:匹配位于?之前的0个或1个字符(最小模式,非贪心模式)

  9. “{m,n}”:表示至少有m个重复,至多有n个重复,m,n均为十进制数
    ①忽略m表示0个重复,忽略n表示无穷多个重复。
    ②{0,}等同于*;{1,}等同于+;{0,1}与?相同。但是如果可以的话,最好使用*、+、或?

虽然通过re模块可以使用正则表达式处理字符串,但是正则表达式对象提供了更多的功能,可以查阅相关资料了解更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眉眼弯弯001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值