正则表达式


一.什么是正则表达式

维基百科:正则表达式(英语:Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

二.正则表达式的常用操作符

操作符说明实例
.表示任何单个字符万能字符匹配
[ ]字符集,对单个字符给出取值范围[ abc] 表示a或b或c;[ a-z] 表示从a到z的任意一个字符
[^]非字符集,对单个字符给出排除范围[^abc] 表示除abc以外的任意一个字符
*前一个字符0次或者无限次拓展abc* 表示ab或abc或abcc等等,c可以出现0次到无数次
+前一个字符一次或者无限次拓展abc+ 表示abc或abcc或abccc等等,c可以出现1次到无数次
前一个字符0次或者1次拓展abc? 表示ab或abc,c可以出现0次或1次
I(竖杠)左右表达式任意一个axIat 表示ax或者at
{m}拓展前一个字符m次ab{2}c 表示abbc,b出现2次
{m,n}拓展前一个字符m到n次(包含n次)ab{1,2}c 表示abc或者abbc
^匹配字符串开头^abc 表示abc在字符串开头
$匹配字符串结尾abc$ 表示abc在字符串结尾
( )分组标记,内部只能使用 I 操作符(abIac) 表示ab或者ac,括号表示了在这个范围内
\d数字,等价于{0-9}
\w单词字符,等价于{A-Za-z0-9}
\b匹配单词头或者单词尾

三.实例:IP地址的匹配

(1)IP地址分四段,每段都是从0-255,中间用.隔开。
(2)我们需要把0-255进行切分成好几段,这样更容易表示。
(3)0-99 : [1-9]?\d
(4)100-199 :1\d{2}
(5)200-249 :2[0-4]\d
(6)250-255 :25[0-5]
(7)最终表示: (([1-9]?\d | 1\d{2} | 2[0-4]\d | 25[0-5]).){3}([1-9]?\d | 1\d{2} | 2[0-4]\d | 25[0-5])

四.一些匹配例子

∙ \bullet 匹配单词Love:print(re.findall(r'Love',text)

∙ \bullet 匹配g开头的所有单词:print(re.findall(r'\bg\w*?\b',text)) #两个\b表示中间匹配的是单词。

∙ \bullet 匹配长度为三的单词:print(re.findall(r'\b\w{3}\b',text))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

比奇堡咻飞兜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值