正则表达式

正则表达式就是记录文本规则的代码。

re是python里的正则表达式模块。findall是其中一个方法,用来按照提供的正则表达式,去匹配文本中的所有符合条件的字符串。返回结果是一个包含所有匹配的list。

r,是raw的意思,它表示对字符串不进行转义,因为python的字符串碰到“\”就会转义它后面的字符。如果你想在字符串里打“\”,则必须要打“\”。

“.”在正则表达式中表示除换行符以外的任意字符

”在匹配时,会匹配尽可能长的结果。如果你想让他匹配到最短的就停止,需要用“.?”。如“I.*?e”,就会得到第二种结果。这种匹配方式被称为懒惰匹配,而原本尽可能长的方式被称为贪婪匹配。

要表示任意长度的数字,就可以用
[0-9]或者\d

表示的任意长度包括0,也就是没有数字的空字符也会被匹配出来。一个与类似的符号+,表示的则是1个或更长。

如果要限定长度,就用{}代替+,大括号里写上你想要的长度。比如11位的数字:\d{11}
想要再把第一位限定为1,就在前面加上1,后面去掉一位:1\d{10}

\w - 匹配字母或数字或下划线或汉字
\s - 匹配任意的空白符
^ - 匹配字符串的开始
$ - 匹配字符串的结束

\S其实就是\s的反义,任意不是空白符的字符。同理,还有:
\W - 匹配任意不是字母,数字,下划线,汉字的字符
\D - 匹配任意非数字的字符
\B - 匹配不是单词开头或结束的位置
[a]的反义是[^a],表示除a以外的任意字符。[^abcd]就是除abcd以外的任意字符。

*、+、{}来表示字符的重复。其他重复的方式还有:
? - 重复零次或一次
{n,} - 重复n次或更多次
{n,m} - 重复n到m次

正则表达式不只是用来从一大段文字中抓取信息,很多时候也被用来判断输入的文本是否符合规范,或进行分类。例如:^\w{4,12}$
这个表示一段4到12位的字符,包括字母或数字或下划线或汉字,可以用来作为用户注册时检测用户名的规则。

\d{15,18}
表示15到18位的数字,可以用来检测身份证号码

^1\d*x?
以1开头的一串数字,数字结尾有字母x,也可以没有。有的话就带上x。

如果我们确实要匹配.或者*字符本身,而不是要它们所代表的元字符,那就需要用.或*。\本身也需要用\。
比如"\d+.\d+"可以匹配出123.456这样的结果。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值