搞懂python中的正则表达式语法

为什么要学正则表达式呢?

在我们有时候处理字符串的时候,有些字符串很复杂。但是也有很多规律和规则。

正则表达式就是描述这种规则的方法。从而解决了我们查找符合某些复杂规则的字符串的需求。

 

首先开始:

正则表达式中的概念:行定位符、元字符、限定符、字符类、排除字符、选择字符、转义字符、分组。

什么是:行定位符

用来描述字符串的边界

^开始

$结束

什么是:元字符

在正则表达式中有特殊意义的字符就叫元字符,比如说^ $
常见的元字符:
.        匹配除换行符以外的任意字符,
\w     匹配字母,数字,下划线或汉字
\s      匹配任意的空白符
\d     匹配数字
\b     匹配单词的开始和结束               

限定符:

?        匹配前面的字符零次或一次       如:colou?r  匹配u的零次或一次        结果:color colour
*        匹配前面字符零次或多次           如:Go*gle   匹配o的零次或多次        结果: Ggle 到Goo.....gle
+        匹配前面字符的一次或多次        如:Go+gle   匹配o的一次或多次     结果: Gogle 到Goo.....gle
{n}      匹配前面字符的n次        如:Go{2}gle   匹配o的2次    结果: Google
{n,}      匹配前面字符最少的n次        如:Go{2}gle   匹配o的2次    结果: Google 到Goo....gle
{n,m}    匹配前面字符最少的n次最多m次        如:Go{2,4}gle      结果: Google 到Goooogle

字符类:

[]        可以理解匹配的范围       例如[aeiou]  那么表示只可以匹配a e i o u
         要想匹配给定字符串中任意一个汉字,可以使用[\u4e00-\u9fa5];
         如果要匹配连续多个汉字,可以使用[\u4e00-\u9fa5]+。
\u    表示Unicode
-
      表示在 之间

排除字符:

[^]    可以理解匹配的范围        例如[^1-9]  那么表示排除1到9之间的所有数字
         [^a-zA-Z]    那么表示排除a到z之间的小写字母和大写字母.也就是所有英文字母

选择字符:       

可以理解为或

|        a|b    理解匹配a或者b

转义字符:

\            将特殊字符变为普通的字符        \.  则输入是点     \\d            这输出是d

分组:    

()            可以改变正则表达式的作用范围
括号在正则表达式中也算是一个元字符
(thir|four)th    匹配单词thirth或fourth,如果无小括号thir|fourth,那么就变成了匹配单词thir或fourth

 

正则表达式的应用

匹配一个身份证号
注意:身份证号有15位 或者18位数字 或者17位数字加X
(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|X|x)$

匹配一个网络IP地址:
[1-9]{1-3}\.[1-9]{1-3}\.[1-9]{1-3}\.[1-9]{1-3}

在Python中使用正则表达式语法

在python中使用正则表达式

放在模式字符串中        如'[^a-zA-Z]'
由于模式字符串中可能包括大量的特殊字符和反斜杠,如果需要写为原生字符串,即在模式字符串前加r或R。就不需要\进行转义了。如:    r"\d"

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值