正则表达式入门

正则表达式

what:一种匹配字符串的规则

where:程序领域:1,登录注册的表单验证 2.爬虫 3.自动化开发

why:可以制定一个规则 1.来确认某一个字符串是否符合规则 2.从大段的字符串中找到符合规则的内容

how:

正则表达式的语法:1.元字符 2.量词 3.特殊用法和现象

1元字符

[...]----匹配字符组(集)中的字符

[^...]---匹配除了字符组中字符的所有字符

\d-------匹配数字

\w-------匹配字母数字或下划线

\s-------匹配任意空白符

\D-------匹配非数字

\W-------匹配非数字或字母或下划线

\S-------匹配非空白符

\n-------匹配一个换行fu

\t-------匹配一个制表符

^--------匹配字符串的开始

$--------匹配字符串的结尾

a|b------匹配a或b

()------匹配括号内的表达式,也表示一个组

.--------匹配除换行符以外的任意字符

\b-------匹配一个单词的边界

2量词

*--------重复零次或更多次

+--------重复一次或更多次

?-------重复零次或一次

------重复n次

-----重复n次或更多次

----重复n到m次

转义符\

在正则表达式中,有很多有特殊意义的元字符,比如\d和\s等,如果要在正则中匹配正常的\d而不是数字

就需要对'\'进行转义,变为’\\‘。

在python中,无论是正则表达式,还是匹配内容,都是以字符串的形式出现的,在字符串中\也有特殊的

含义,本身还需要转义。所以如果匹配一次\d,字符串中要写出\\d,那么正则里面就要写出\\\\d,这样

就太麻烦了。这个时候我们就需要用到了 r'\d'这个概念,此时的正则就是r'\\d'就可以了。

贪婪匹配

贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

3特殊用法和现象

几个常用的非贪婪匹配

*?------重复任意次数,但尽可能少重复

+?------重复1次或跟多次,但尽可能少重复

??-----重复0次或1次,但尽可能少重复

?---重复n到m次,但尽可能少重复

?----重复n次以上,但尽可能少重复

.*?的用法

.是任意字符

*是取0至无限长

?是非贪婪匹配

合在一起就是,取尽量少的任意字符,一般不会这么单独写,大多用在

.*?x 就是取前面任意长度的字符,知道一个x的出现。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180810A0ZHG200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券