python 正则表达式语法大全_【1】python-正则表达式语法规范与

一、正则表达式之特殊字符

10c95bdcdf5c8ce66bec5e576d3def72.png

注意:

以下的案例中是match()匹配,match是要求从第一个字符开始匹配,所以,前边是有.*

【1】^ 作用- 以b 开头匹配的结果

b524f6b5f26e03f668499214197e25f1.png

【2】$ 作用-任意开头,以3结尾

3b6efc3a103b0aa1d86866e0207751d6.png

注意:下边这种是不行的,如果没有*号,就不表示多次了。

aefe613c83454625a3ffb86dfdffdcc4.png

表示4为匹配第三位的。点是匹配第二位的。

【3】?的作用

(1)贪婪匹配默认是反向匹配的

贪婪匹配下,是从后往前 开始匹配的。如下例子。

803a80abd724494373646b80b0098245.png

(2)、在左边加一个?号则正向匹配

在左边 加一个?的话,就会从左往右开始匹配。是非贪婪匹配了,但是括号里面的仍然是贪婪匹配。【即从左匹配,第一个b被固定了,但是括号里的第二个b还是从右开始匹配,。*再输出中间的一切内容。】

42f332b1517c7f156584d2499986dcc5.png

(3)、在括号里也添加括号,进行非贪婪匹配

72a530bb362f218a03da11dc7c1072c7.png

#技巧:括号里是有问好的,所以在第一个b确定下后.*?b是从左往右的#输出是:boooooob

【4】、+的作用

简述以上?的原理

其实,上边说的从左从右匹配都是一种技巧的规则,其实完全可以按照下边的这三个符号的含义来解释。

*表示0次或者多次

+表示1次或者多次

?0次或者是1次

比如:

Line=”booooooobbaaa”

pattern=“.*(b.*b)”这里的两处.*都是贪婪匹配模式的,小括号中的.*【由于*是表示0/1次,】所以匹配出黄色部分的bb。

+的作用:

+其实是表示1次或者是多次的匹配模式的。

比如:对于以下

Line=”booooooobbaaa”

pattern=“.*(b.+b)”就无法匹配成功,因为.+是至少要匹配1个元素的,那么开头结尾都是b,中间还要一个元素的情况是没有的。

那么比如:

Line=”booooooobabaaa”

pattern=“.*(b.+b)”

就匹配出了结果是bab

【案例分析】

(1)

b3f0f2eb81fdfd03479fcba862fd8564.png

(2)

159d4b0dc927789d57763becbfb65669.png

(3)

993bcab71d13030c538cbdc054e9fc0d.png

【5】、{2}的作用、

{1}  {2}  表示某一个限定元素的出现此时。

案例分析:

(1)

7511d2fe7605feb06176514cec9c81a3.png

(2)

a71688e0092012e1333d42adb05ec324.png

(3)

df7227cd63d041859223dbf157010b95.png

【6】、{2,}&&{2,5}

1、{2,}表示两次或以上的输出

d37b25290d02349403a87a6b1b8ea21e.png

{2,5}

Y与上边原理相同,表示,大于等于2 小于等于5

9b01e187407c8944d750420ac637e57b.png

【7】、| 的用法

这个符号代表或的关系。

14d802dc34f3da988eb057f1883bac64.png

特殊括号的用法

ca83d562f27c2117cf927d0487d7d6f6.png

输出boobb123

【8】、[ ]的用法

《1》[ ]第一个用法表示中括号中的任意一个值满足就进行匹配操作。

案例如下:

d155a64d508a4fe913bdf9687755d48e.png

《2》[0-9]中括号的第二个含义,可以表示区间。

比如说匹配电话号码:

Phone_num_pattern=”1[3578][0-9]{9}”

表示,可以匹配13*****  /15*****/17*************/18***********的电话号码,后边九位是0—9任意,{9}表示9个数字

ce1ebaf778fc49b79633a9dc10e98ea3.png

《3》[^1] 的第三个用法。表示中括号的值不是1 的所有情况匹配

d71f1fd7e51f7c7a4d7f92f4cf268f6b.png

《4》[]的第四个用法 [.]中的.就表示一个点了。

1ee1530a7d59b907e3cc3be4445407e9.png

【9】、\s(小)表示可以匹配空格字符

\s 是匹配空白字符

1ec9e92132c0784ad3b5f96f6f8eda6f.png

【10】、\S(大) 是匹配除了换行的任何非空白字符的

983075f6cb7a331cfc413989ffbd1b1b.png

如果您好中间有多个字符可以用 “(您\S+好)”进行匹配来完成

a276f9bfa90aaef5dc4a40c5ca4b10b9.png

【11】、\w 的用法  【重点】------是与\S(大)比较相似

\w 的含义是[A-Za-z0-9_]    是与\S有区别的,比如\S是可以匹配到+号的

4215142c1a35556bc413709a036d56c4.png

【12】、\W 是表示除了[A-Za-z0-9_]之外的所有字符

\W 是表示除了[A-Za-z0-9_]之外的所有字符,它恰好与\w相反的一个匹配功能。

97f027c8938a5d43056a6e7857ce85d7.png

【13】、Unicode汉字的提取

提取代码是 [\u4E00-\u9FA5]+

f24e2893e0e4e8fda173eaaac9f0aa85.png

【14】、再次理解贪婪匹配

ee0986a29b6cecc92dac677d239d50d9.png

【15】 \d 的用法 是提取出数字

b5162a6d6e3ae55841c317d10daa335d.png

【16】、()表示一个组。

总结:正则表达式汇总表

5a5d6bb63ccc475322bc027880c2e6e5.png

总结案例:【经典案例】

案例一:

ac02aabee035fc1f616622a53a667b98.png

案例2 :

bb235b8c7f4344ef26855e093e52cb7a.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值