正则表达式

xiaoxiao2025-10-07  28

正则提取字符方式

[abc]abc中的一个[a-z]a-z中的一个[0-9]0-9中的一个数字[a-f0-5]a-f或者0-5 一个就可以[ab] [de][12]每个[]取一个,连起来

元字符

1:对于 . 的使用,以及字符串的方法 . 任意单字符 ,匹配不了 \n 就想表示字符串的 . 这么写 \. \d一个数字 相当于[0-9]\D一个 非 数字\w一个数字字母或者下划线。相当于[a-zA-Z0-9_] (中文)\W\w的反面\s空白\S非空白\b单词边界 r’\bis\b’ 特殊的地方。单词边界前一定要加一个r’’ 2:小例子: 13\d\d\d\d\d\d\d\d\d 13\d{9} 1[3456789]\d\d\d\d\d\d\d\d\d

量词:

{m}m 个{m,n}m-n个{1,}1个以上{0,}0个以上{0,1}0次或一次 *相当于 {0,}+相当于 {1,}?相当于 {0,1} 1:小例子: \w+@qq.com 一个qq邮箱 \w+@\w+.\w+ 任意的一个 xx@xxx.xxx 的邮箱

分组

(name|age|sex) 一个name 或者 age 或者 sex

^以什么开头$以什么结尾

贪婪模式:

reg2 = re.compile(‘a\w*b’)会 尽量长的去寻找结尾的breg2 = re.compile(‘a\w*?b’)只要axxb有即可。一个就行

贪婪模式用在爬虫提取数据中

# 导包 import re # 设置匹配模式 # 其实就是用你多个重复中的提取一个需要的地方 #(.*?)两边给标识,即提取了两个标识中间的部分 #.*?两边给标识,就是把两个标识中间的部分全部省略 #案例 # 创建提取格式 reg=re.compile(中间为提取省略部分) # 利用提取格式提取 赋值给一个变量,方便调用=re.findall(reg,需要从中提取信息的变量代表名)
转载请注明原文地址: https://www.6miu.com/read-5037496.html

最新回复(0)