码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2018-08-06 15:51:40      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:换行符   color   表达   表示   自动   转义   数字   \n   常用   

正则表达式

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,}-----重复n次或更多次
{n,m}----重复n到m次



转义符在正则表达式中,有很多有特殊意义的元字符,比如\d和\s等,如果要在正则中匹配正常的\d而不是数字
就需要对\‘进行转义,变为’\\‘。
在python中,无论是正则表达式,还是匹配内容,都是以字符串的形式出现的,在字符串中\也有特殊的
含义,本身还需要转义。所以如果匹配一次\d,字符串中要写出\\d,那么正则里面就要写出\\\\d,这样
就太麻烦了。这个时候我们就需要用到了 r\d这个概念,此时的正则就是r\\d就可以了。

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

3特殊用法和现象

几个常用的非贪婪匹配
*?------重复任意次数,但尽可能少重复
+?------重复1次或跟多次,但尽可能少重复
??-----重复0次或1次,但尽可能少重复
{n,m}?---重复n到m次,但尽可能少重复
{n,}?----重复n次以上,但尽可能少重复

.*?的用法
.是任意字符
*是取0至无限长
?是非贪婪匹配
合在一起就是,取尽量少的任意字符,一般不会这么单独写,大多用在
.*?x  就是取前面任意长度的字符,知道一个x的出现。

 

正则表达式

标签:换行符   color   表达   表示   自动   转义   数字   \n   常用   

原文地址:https://www.cnblogs.com/xiao-xue-di/p/9430507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!