共享网站的建设与规划,平面设计要什么学历,安阳网络平台,网站制作高手正则表达式语法#xff1a; # -*- coding: utf-8 -*- 元字符#xff1a;具有固定含义的特殊符号 常用元字符#xff1a;#xff08;一般一次匹配一个字符#xff09; . 匹配除换行符以外的任意字符 \w 匹配字母数字或下划线 \s 匹配任意的空白符 \n 匹配一个换行符 \t 匹配…正则表达式语法 # -*- coding: utf-8 -*- 元字符具有固定含义的特殊符号 常用元字符一般一次匹配一个字符 . 匹配除换行符以外的任意字符 \w 匹配字母数字或下划线 \s 匹配任意的空白符 \n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配非字符或数字或下划线 \D 匹配非数字 \S 匹配非空白符 a|b 匹配字符a或字符b () 匹配括号内的表达式也表示一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符 量词控制前面的元字符出现的次数 \d* 重复零次或更多次 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 贪婪匹配和惰性匹配 .* 贪婪匹配 .*? 惰性匹配 匹配最少 # -*- coding: utf-8 -*-Created on Tue Apr 20 23:10:49 2021author: WLHimport re# findall 匹配字符串中所有的符合正则的内容 返回的是列表lst re.findall(\d, 我的电话号是10086)
print(lst) #[10086]
lst re.findall(\d, 我的电话号是10086我朋友电话号是10010)
print(lst) #[10086, 10010]
# finditer 匹配字符串中所有的内容 返回的是迭代器it re.finditer(\d, 我的电话号是10086我朋友电话号是10010)
# for i in it:
# print(i)
for i in it:print(i.group())
#输出结果
# 10086
# 10010
# search 找到一个就返回 返回的结果是match对象拿数据需要.group()s re.search(\d, 我的电话号是10086我朋友电话号是10010)
print(s.group()) #10086
# match 是从头开始匹配s re.match(\d, 我的电话号是10086我朋友电话号是10010)
print(s) # 空
s re.match(\d, 10086我朋友电话号是10010)
print(s) # 10086
# 预加载正则表达式
obj re.compile(\d)
ret obj.finditer(我的电话号是10086我朋友电话号是10010)
for i in ret:print(i.group())输出结果
10086
10010ret obj.findall(呵呵哒我就不信你不还我100000000)
print(ret)输出结果
[100000000]s
div classjayspan id1郭麒麟/span/div
div classjjspan id2宋轶/span/div
div classjolinspan id3大聪明/span/div
div classsylarspan id4范思哲/span/div
div classtoryspan id5胡说八道/span/divobj re.compile(div class.*?span id\d.*?/span/div,re.S)
#re.S能匹配换行符
result obj.finditer(s)
for i in result:print(i.group())obj re.compile(div class.*?span id\d(?Pwahaha.*?)/span/div,re.S)
#re.S能匹配换行符
result obj.finditer(s)
for i in result:print(i.group(wahaha))obj re.compile(div class.*?span id(?Pid\d)(?Pwahaha.*?)/span/div,re.S)
result obj.finditer(s)
for i in result:print(i.group(wahaha))print(i.group(id))
正则补充
import re
pat re.compile(AA) # AA为正则表达式 用来去验证其他的字符串
# m pat.search(CBA) # search 后的字符串 是被校验的内容
# print(m)
# m pat.search(AACBAA) # search 后的字符串 是被校验的内容 只查找第一个
# print(m)# m re.search(AA,AASS) # 前面的字符串为规则 后面的为被校验的对象
# print(m)# print(re.findall(a,ASDaDFGAa)) # 前面的字符串为规则 后面的为被校验的对象
# print(re.findall([A-Z],ASDaDFGAa)) # 前面的字符串为规则 后面的为被校验的对象# sub 替换
# print(re.sub(a,A,abcdcasd)) # 找到a用A代替 在第三个字符串中寻找a# 建议在正则表达式中被比较的字符串中加上r不要担心转义字符的问题
a r\aaa-\
print(a) # \aaa-\