当前位置: 首页 > news >正文

淄博网站建设-中国互联wordpress加文章顶部全局广告图片

淄博网站建设-中国互联,wordpress加文章顶部全局广告图片,公众号代运营公司哪家好,网站打不开 清理缓存后可以打开正则表达式 1.正则的作用 正则表达式式一种可以让复杂的字符串变得简单的工具。 写正则表达式的时候就是用正则符号来描述字符串规则。 2.正则语法 需要导入模块 from re import fullmatch, findall, search2.1.第一类#xff1a;匹配类符号 1#xff09;普通字符—在…正则表达式 1.正则的作用 正则表达式式一种可以让复杂的字符串变得简单的工具。 写正则表达式的时候就是用正则符号来描述字符串规则。 2.正则语法 需要导入模块 from re import fullmatch, findall, search2.1.第一类匹配类符号 1普通字符—在正则表达式中表式符号本身的符号 result fullmatch(rabc, abc) print(result) # re.Match object; span(0, 3), matchabc2.点 —匹配任意一个字符 result fullmatch(r.bc, wbc) # 第一位任意字符都可以第二位和第三位必须是bc否则为空 print(result) # re.Match object; span(0, 3), matchwbc result fullmatch(r.bc, wcc) print(result) # None3\d — 匹配任意一个数字字符 result fullmatch(r\d\dabc, 88abc) # abc前面任意两个数字都可以 print(result) # re.Match object; span(0, 5), match88abc4\s —— 匹配任意一个空白字符 空白字符空格(‘’)、换行(‘\n’)、水平制表符(‘\t’) result fullmatch(r123\sabc, 123 abc) result1 fullmatch(r123\sabc, 123\tabc)5\w — 匹配任意一个字母、数字、下划线或者中文 result11 fullmatch(rabc\w123, abcT123) result12 fullmatch(rabc\w123, abc8123) result2 fullmatch(rabc\w123, abc_123) result3 fullmatch(rabc\w123, abc我123)6\D、\S、\W —— 分布和\d、\s、\w的功能相反 \D —— 除了数字的任意字符 result4 fullmatch(rabc\D123, abcw123) result5 fullmatch(rabc\D123, abc8123) # None\S —— 除了空白字符的任意字符 result41 fullmatch(rabc\S123, abc1123) result51 fullmatch(rabc\SD123, abc 123) # None\W —— 除了字母数字下划线和中文的任意字符 result42 fullmatch(rabc\W123, abc*123) result52 fullmatch(rabc\W123, abc_123) # None注意如果字符中间是tab键不可以因为只能匹配任意一个字符tab是四个。 7[字符集] —— 匹配在字符集中的任意一个字符 [abc] —— 匹配a或者b或者c [abc\d] —— 匹配a或者b或者c或者任意数字[abc0123456789] [0-9] —— 匹配字符0到9中任意一个字符 [a-z] —— 匹配任意一个小写字母 [A-Z] —— 匹配任意一个大写字母 [a-z%] —— 匹配任意一个小写字母或者% [a-zA-Z] —— 匹配任意一个字母 [a-zA-Z\d] —— 匹配任意一个字母或者数字 [\u4e00-\u9fa5] —— 匹配任意一个中文result6 fullmatch(rabc[你好hello]123, abc你123) print(result6) # re.Match object; span(0, 7), matchabc你123result33 fullmatch(rabc[\u4e00-\u9fa5]123, abc婷123) print(result33)8)[^字符串] —— 匹配不在字符集中的任意一个字符 result71 fullmatch(rabc[^MN]123, abca123) # 除了MN的字符其它都可以 result72 fullmatch(rabc[^MN]123, abcM123) # None2.2 第二类符号匹配次数符号 匹配类符号 匹配次数 1) * —— 任意次数0次或者1次或者多次 a* —— a出现任意多次 \d* —— 任意多个任意数字 [abc]* —— abc中任意一个字符可以出现任意多次result81 fullmatch(r1a*2, 1aaaaaaa2) result82 fullmatch(rM\d*N, M1234567890N) result83 fullmatch(rM[3-9]*N, M1234567890N)2 —— 一次或者多次至少1次 result86 fullmatch(r1a2, 1aaa2)3 —— 0次或者1次 result84 fullmatch(r1a?2, 1aa2) # none result85 fullmatch(r1a?2, 1a2)4) {} {N} —— N次 {M,N} —— M到N次 {M,} —— 至少M次 {,N} —— 最多N次result8 fullmatch(r1a{3}2, 1aaa2) # a出现3次 result87 fullmatch(r1a{3,6}2, 1aaaa2) # a出现3到6次都可以# 练习写一个正则表达式可以匹配任意一个除了0的整数。 # 合法233、234、-7283、100、-2000 # 不合法0、0002、2.23 result9 fullmatch(r[-]?[1-9]\d*, 0.123) print(result9)5贪婪和非贪婪模式 1.在匹配次数不确定的时候如果有多种次数都可以匹配成功贪婪取最多的那个次数非贪婪取最少的那个次数。 2.默认是贪婪模式· 3.贪婪模式、、*、{MN}、{M}、{N} 非贪婪模式、、*、{MN}、{M}?、{N}? result10 search(ra.{3,5}b, a123b) # 匹配字符串中第一个满足正则表达式,就是取三个 print(result10)# ahhhhb,ahhhhbyyb,ahhhhbyybuuub result121 search(ra.b, dhwahhhhbyybuuubvxgdfs) print(result121) # ahhhhbyybuuub # 非贪婪,就是在正常的写法后面加一个 result122 search(ra.?b, dhwahhhhbyybuuubvxgdfs) print(result122) # ahhhhb# 练习使用正则提取top250中每个电影的详情页地址 import requests from re import findallheaders {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 } response requests.get(https://movie.douban.com/top250?start0filter, headersheaders) result findall(ra href(https://movie.douban.com/subject/.*?/) , response.text) print(result) #方法2 response requests.get(https://movie.douban.com/top250?start0filter, headersheaders) result list(set(findall(rhttps://movie.douban.com/subject/.*?/ , response.text))) print(result)3.分组和分支 1)分组 —— () 正则表达式中可以用()将部分内容括起来表示一个整体括号括起来的部分就是一个分组 a.整体操作的时候需要分组 b.重复匹配 —— 正则中可以通过\M来重复它前面第M个分组匹配的结果 c.捕获 —— 提取分组匹配到的结果(捕获分为自动捕获(findall)和手动捕获)1.整体操作 # 整体操作 # 23M result23 fullmatch(r(\d\d[A-Z]), 45T45H65F56G90D) print(result23)2.重复匹配 # 重复匹配\1是指的是重复前面第一个括号 #案例 90k90 , 80u80,99u99 result32 fullmatch(r(\d\d)[A-Z]\1, 90K90) print(result32) # re.Match object; span(0, 5), match90K90 # \2是指的是重复第2个括号 result3211 fullmatch(r(\d{3})([A-Z]{2})\2\1, 999LOLO999) print(result3211) # re.Match object; span(0, 11), match999LOLO999 #案例2 提取中文后的数字 # findall在正则表达式中有分组的时候会自动提取正则匹配结果中分组匹配到的内容 message hfuuf你好335556432jfigh89和2470 result99 findall(r[\u4e00-\u9fa5](\d), message) print(result99) # [335556432, 2470] #案例3提取身高的数据 message 我是小明今年18岁,身高180cm,体重70kg result search(r身高(\d)cm,体重(\d)kg, message) 2)匹配对象.group(N) —— 获取匹配结果中指定的分组匹配到的内容 print(result) # re.Match object; span(11, 25), match身高180cm,体重70kg print(result.group()) # 身高180cm,体重70kg print(result.group(1), result.group(2)) # 180 703) 分支 —— | 正则1|正则2|正则3|.... —— 先用正则1进行匹配匹配成功直接成功匹配失败用正则2进行匹配...result fullmatch(\d{3}|[a-z]{2}, mn) print(result) # re.Match object; span(0, 2), matchmnresult fullmatch(rabc\d\d|abc[A-Z]{2}, abc23) print(result) # re.Match object; span(0, 5), matchabc23result fullmatch(rabc(\d\d|[A-Z]{2}), abcLL) print(result) # re.Match object; span(0, 5), matchabcLL4.转义符号 转义符号在本身具有特殊功能或者特殊意义的符号前加,让特殊符号变成普通意思。 # 案例匹配整数部分和小数部分都是两位数的小数 result fullmatch(r[1-9]\d\.\d\d, 23.45) print(result) #re.Match object; span(0, 5), match23.45# 案例需要求两个数的和 result fullmatch(r\d\\d,34) print(result) #re.Match object; span(0, 3), match34# 案例打印’amd‘ result fullmatch(r\([a-z]{3}\),(jsk)) print(result) #re.Match object; span(0, 5), match(jsk)# 注意单独存在有特殊意义的符号在[]中它的功能会自动消失 # 适用于 . ? * $ result fullmatch(r\d[]\d,34) print(result) #re.Match object; span(0, 3), match345.re模板 re模块 —— 提供了python中所有和正则相关的函数。 fullmatch(正则表达式,字符串) —— 用整个字符串判断是否满足正则表达式所描述的规则匹配成功返回匹配对象匹配失败Nonefindall(正则表达式,字符串) —— 获取字符串所有满足正则表达式的子串默认返回一个列表列表中匹配的元素是所有子串存在自动捕获search(正则表达式,字符串) —— 匹配字符串中第一个满足正则表达式的子串,匹配成功返回匹配对象匹配失败返回空split(正则表达式,字符串) —— 将字符串中 所有满足正则的子串作为切割点进行切割split(正则表达式,字符串,N) —— 将字符串中前N个满足正则的子串作为切割点进行切割sub(正则表达式,字符串1,字符串2) —— 将字符串2中所有满足正则的子串都替换成字符串1sub(正则表达式,字符串1,字符串2,N)finditer(正则表达式,字符串) —— 获取字符串中所有满足正则的子串返回一个迭代器迭代器中的元素是匹配对象match(正则表达式,字符串) —— 匹配字符串开头 str1 技术7d3eee5eee7ef7njk9你减肥胶囊7 print(str1.split(7)) # [技术, d3eee5eee, ef, njk9你减肥胶囊, ]str1 技术7d3eee5eee7ef7njk9你减肥胶囊7 print(split(r\d, str1, 2)) # [技术, d, eee5eee7ef7njk9你减肥胶囊7]str1 技术7d3eee5eee7ef7njk9你减肥胶囊7 print(sub(r\d, , str1)) #技术deeeeeeefnjk你减肥胶囊message 妈的sb,西八都打起来了你还在打野操fuck print(sub(r(?i)妈的|sb|西八|操|f\s*u\s*c\s*k|艹,*,message)) #**,*都打起来了你还在打野**str1 技术7d3eee5eee7ef7njk9你减肥胶囊7 result finditer(r\d, str1) print(list(result)) #re.Match object; span(15, 16), match7, re.Match object; span(19, 20), match9, re.Match object; span(25, 26), match7]print(fullmatch(r\d{3}, 234)) print(match(r\d{3}, 234Ihs你好))6.参数 1)忽略大小写:(?i) print(fullmatch(r(?i)abc, abc)) print(fullmatch(r(?i)abc, Abc)) print(fullmatch(r(?i)abc, ABc)) print(fullmatch(r(?i)abc, AbC))2)单行匹配:(?s) 多行匹配(默认).(点) 不能和换行符(\n)进行匹配 单行匹配:.(点)可以和换行符进行匹配 print(fullmatch(rabc.123,abc0123)) # None # print(fullmatch(rabc.123,abc\n123)) print(fullmatch(r(?s)abc.123,abc\n123)) # re.Match object; span(0, 7), matchabc\n123举例 # 输入多行 name:student ——小张message name:student wqe小张result findall(r(?s)name:(.),message) print(result) #[student\nwqe小张]
http://www.hkea.cn/news/14348374/

相关文章:

  • 网站群建设 效果个人网站名可以和别人一样吗
  • 网站怎么用PS做做木工的网站
  • 网站设计常州做外贸的如何上国外网站
  • 做网站外包价格天翼云服务器
  • 黑龙江电商网站建设wordpress升级主题
  • 股票网站怎么做动态表格有没有专门做蛋糕的网站
  • 冠县网站建设费用dz论坛识别手机网站自动跳转
  • 润商网站建设西安百度框架户
  • 系统网站开发虚拟主机免费空间
  • 酒类网站该怎么做网站建设的收获
  • 简述网站建设优劣的评价标准网页设计网站首页代码
  • 重生做皇帝小说网站女生学动漫制作技术好就业吗
  • 天津建设信息网站哈尔滨建设网站
  • 有哪些官网做的比较好的网站html网页模板大全
  • 面签拍照 网站备案公司查询系统官网
  • 网站备案时核验单网站备案后 换服务器
  • 网站的建设与维护就业方向最近热点新闻头条
  • 口碑好网站建设公司山东新增5个高风险地区
  • 手机微信官方网站首页哪个门户网站做推广好
  • 网络公司做的网站我能改后台么wordpress中修改链接
  • 住房与建设注册中心网站网站设计开发文档模板
  • 文交所网站建设方案网站建设公司58
  • 广东建设厅网站个人怎么登录啊苏州网网站建设
  • 个人如何做微商城网站html网页制作代码大全菜鸟
  • 关于网站建设的几点体会重庆森林经典台词
  • php企业网站源码国外域名。国内网站
  • 辽宁省建设工程信息网官网新网站wordpress注册密码忘记
  • 一个网站按钮怎么做中国建设协会八大员
  • 长沙做网站找哪家好中国化工网官网 网站建设
  • 传奇广告查询网站最佳搜索引擎磁力狗