正则表达式
Posted amber-liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
1. 正则表达式本身和python没有什么关系,是一种独立的规则,独立的语言,是匹配字符串内容的一种规则。
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,
这个“规则字符串”用来表达对字符串的一种过滤逻辑。
2. 正则表达式是什么?能做什么?
从大段的文字中找到符合规则的内容
判断某个字符串是否完全符合规则
3. 元字符
w 匹配 数字,字母,下划线[a-zA-Z0-9_]
s 匹配所有空白符 换行符/制表符,空格
匹配换行符
匹配制表符
d 匹配所有数字[0-9]
W ,D,S 和w,d,s取反 [sS] [dD] [wW]是三组全集 意思是匹配所有字符
表示单词的边界
^ 匹配一个字符串的开始
$ 匹配一个字符串的结束
. 匹配出换行符之外的所有字符
| a|b 符合a规则的或者符合b规则的都可以被匹配
将更复杂更长的规则写在前面
() 分组 表示给几个字符加上量词约束的时候,就给这些字符跟在一个组
[ ] 字符组
在同一个位置上可以出现的字符的范围(只要出现在中括号内的内容都可以被匹配)
[^] 只要不出现在中括号中的内容都可以被匹配
有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )
4.量词
{n} 表示这个量词前面的字符出现n次
{n,}表示这个量词前面的字符至少出现n次
{n,m}表示这个量词前面的字符出现n到m次
?表示匹配量词前面的字符出现0次或者1次,表示可有可
+表示匹配量词前面的字符出现1次或者多次
*表示匹配量词前面的字符出现0次或者多次
5.正则表达式匹配的特点
贪婪匹配,他会在允许的范围内取最长的结果
非贪婪模式/惰性匹配,在量词后面加上?表示取它能取的最少
.*?x # 匹配任意非换行符字符任意长度 直到遇到x就停止
6练习 正则测试网址http://tool.chinaz.com/regex/
匹配整数
匹配小数
匹配小数或者整数
匹配身份证号码 (以非0开头,15位数字或者18位,最后一位可以是x或者数字)
答案: d+ d+.d+ d+(.d+)? 或者 d+.d+|d+
[1-9]d{16}[dx]|[1-9]d{14} 或者 [1-9]d{14}(d{2}[dx])?
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性