import re # # ^ 匹配开始 # $ 匹配行尾 # . 匹配出换行符以外的任何单个字符 # [......] 匹配括号内任何当个字符 # [^......] 匹配单个字符或多个字符不在括号内 # * 匹配0个或多个匹配前面的表达式 # + 匹配1个或多个前面出现的表达式 # ? 匹配0次或1次前面出现的表达式 # {n} 精确匹配前面出现的表达式的数量 # {n,m} 匹配至少n次到m次 # a | b 匹配a或b # *?,+?,??,{m,n}? 这样在*,+,?,{m,n} 变成非贪婪模式 # (re) 组正则表达式并及时匹配的文本 # # \d 数字[0-9] # \D 非数字 # \s 空白字符 # \S 非空白字符 # \w 字母数字下划线 # \W 非字母数字下划线 # # re.search(pattern,string,flags=0) # re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None # # compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换 # 格式:re.match(pattern,string,flags=0) #pattern: 正则模型, string:要匹配的字符串 falgs:匹配模式 # # re.match 函数尝试从字符串的其实位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none import urllib.request data=urllib.request.urlopen("https://edu.youkuaiyun.com/huiyiCourse/detail/215").read() pat='<div class="contact_ewmC">\s*<h4>(\w*?)</h4>\s*<p>数据结构交流群</p>\s*<p>(\d+?)\s*</p>\s*</div>' data=str(data,encoding='utf-8') ret=re.compile(pat).findall(data) print(ret) str="请联系qq:34353539@qq.com" pat ='.*:([0-9]{8})@qq.com' print(re.search(pat,str))
python正则表达式
最新推荐文章于 2025-03-07 15:56:43 发布