正则表达式

it2022-05-05  160

正则表达式

1.检测每一段字符串是否符合规则

2从一大段文字中匹配符合规则的字符串

 

主要应用        Python     爬虫

注意:只和字符串相关

元字符

   描述的是一个位置上的内容规则

  列  

# [012345]# [0-5]# [0-9]# [9-0] 不能从大到小来规定范围字符组内的所有范围根据ASCII码来的,一个中括号表示一个字符 数字[0-9]字母小写[a-z]大写[A-Z]大小写[a-zA-Z]数字和大小写[A-Z0-9a-z] 大小写字母加下划线[A-Za-z_] 括号内没有符号,根据ascii码从小到大在字符组中-是有特殊意义的,如果我们想取消这个横杆的特殊意义要加\作为转义符

特殊规则的元字符

[0-9]    \d  匹配任意一个数字   digit

[A-Z0-9a-z]     \w    变量(标识符)

\n   匹配回车换行

\t   匹配制表符table

空格本身匹配  空格

\s 匹配所有的空白

\b  匹配一个单词的边界

反义词(大写)

\W  除了数字字母下划线之外的所有

\D  除了数字之外的所有

\S  除了空白之外的所有

.     匹配换行符之外的所有

[^123]   除123之外的所有

匹配所有 :[\D\d]   [\W\w]   [\S\s]     括号内为大小写

开始符和结束符

^     永远在一个规则的最开始

&      永远在一个规则的最末尾

^和&     规定了这个字符串的长度,并且在这个长度内的内容

|  或的概念

123|456     取123 或则456

()   表示分组

www\.(baidu|oldboy)\.com 表示取www.baidu.com或则www.oldboy.com

量词       

在量词范围内尽可能多的匹配

{n}  表示出现n次

{n,}  表示至少出现n次

{n,m}  表示出现n-m次

?  表示匹配0次或则1次

+  表示匹配1次或多次

*   表示匹配0次或多次

注意   量词表示匹配的次数     元字符表示匹配一个字符的内容

列:

# 匹配整数# [1-9]\d*|0# 匹配小数# \d+\.\d+# 匹配一个整数或者小数# \d+\.\d+|([1-9]\d*|0)# \d+\.?\d*# \d+(\.\d+)? # 正则表达式 匹配身份证号码# 15位# 首位不能为0# ^[1-9]\d{14}$# 18位# 首位不能为0,末尾可能是x和数字# ^[1-9]\d{16}[\dx]$# 合起来# ^([1-9]\d{16}[\dx]|[1-9]\d{14})$# [1-9]\d{14}(\d{2}[\dx])?

转义符

# 在测试的网页上写的是什么# 就直接复制过来# 然后在字符串外面加上一个r# r'\\n' --> r'\n'# t 't'# \t \本身具有转义作用,相当于改变了t本来的面目# \\ \本身具有转义作用,\\相当于转义了\的特殊作用,相当于普通的一个'\'

惰性特点:

需要我们手动设置的 尽可能少匹配

贪婪特性:

默认的 尽可能多匹配 在量词范围内尽可能多的匹配 - 贪婪匹配 # a.* 以a开头的任意一个字符串都可以被匹配出来# a.*? 非贪婪# a.*?x 从a开始匹配,匹配任意长度的字符,遇到一个x就立即停止

转载于:https://www.cnblogs.com/zlyboke/p/10572109.html


最新回复(0)