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

做网站备案要处省的电话号码仿简书 wordpress

做网站备案要处省的电话号码,仿简书 wordpress,大学生创新创业网站开发,校园网站建设计划书如何利用Python使用正则表达式 目录 正则表达式常用匹配规则 ​编辑re库的使用 match()方法#xff1a; search()方法: findall()方法 : sub()方法: compile()方法; 通用匹配 贪婪与非贪婪匹配 贪婪匹配 非贪婪匹配 修饰符 转义匹配 正则表达式是处理字符的强大…如何利用Python使用正则表达式 目录 正则表达式常用匹配规则 ​编辑re库的使用 match()方法 search()方法: findall()方法 : sub()方法: compile()方法; 通用匹配 贪婪与非贪婪匹配 贪婪匹配 非贪婪匹配 修饰符 转义匹配 正则表达式是处理字符的强大工具,他有自己特定的语法结构,有了它,实现字符串的检索,替换,匹配验证都不在话下,不止如此,正则表达式可以从HTML中非常方便地提取想要的信息 正则表达式常用匹配规则 对于URL来说,正则表达式可以用下面的正则表达式来匹配: [a-zA-Z]://[^\s]* 这个正则表达式看上去十分的糟糕,其实里面都包含了特定的语法规则。比如a-z代表匹配任意的小写字母\s表示匹配任意的空白字符*就代表匹配前面的字符任意多个这一长串的正则表达式就是这么多平匹配规则的组合。 所以当写完正则表达式后就可以拿他去一个字符串里匹配查找不论这个字符串里有什么这要符合我们写的规范就统统可以找出来 下面列出常用的匹配规则 参考来源开发过程最全的正则表达式匹配中英文、字母和数字 re库的使用 正则表达式不是Python独有的但Python的re库提供了整个正则表达式的实现利用re库就可以在Python中使用正则表达式下面开始介绍它的一些常用方法 match()方法 match方法会尝试从字符的起始位置匹配正则表达式如果匹配就返回匹配成功如果不匹配就会返回None。示例如下 import re content Hello world 123 1234 Hello_my world print(len(content)) result re.match(^Hello\s\w\w\w\w\w\s\d{3}\s\d{4}\s\w{8},content) print(result) 结果显式: 在这里,首先声明了一段字符串content,里面包含了英文字母,空白字符,数字等等,接下来,我们写了一段正则表达式: ^Hello\s\w\w\w\w\w\s\d{3}\s\d{4}\s\w{8} 用来匹配这个长字符。^是匹配字符串的开头,也就是说以Hello为开头然后\s来匹配空白字符\w匹配字母5个\w代表匹配5个字母后面还有阿拉伯数字如果单纯只用\d\d\d来匹配非常麻烦所以\d后面可以跟着{3}代表匹配3个阿拉伯数字以此类推写出了我们得到正则表达式。其实我们并没有将字符串完整的匹配下来但我们仍然可以进行匹配只不过只是截取字符的一部分来进行匹配而已。 而在match方法中第一个参数传入正则表达式第二个参数传入要匹配的字符。 在打印输出的结果可以看到结果是re.Match对象说明匹配成功但是如果单纯的打印result。则会显示 re.Match object; span(0, 29), match‘Hello world 123 1234 Hello_my’ 所以一下有两种方法可以更好的进行查看 group()方法可以输出匹配到的内容结果是Hello world 123 1234 Hello_myspan()方法 可以输出匹配的范围结果是029 当然match()方法还可以将想要提取的字符串中提出一部分内容只需用()将想要的字符串括起来被括起来的每一个子表达式会一次对应分组调用group()方法传入分组的索引即可获取提取的结果示例如下 import re content Hello world 123 1234 Hello_my world print(len(content)) result re.match(^Hello\s\w\w\w\w\w\s\d{3}\s(\d)\s\w{8},content) print(result) print(result.group()) print(result.group(1)) print(result.span()) 结果显示 这里将group(1)打印,我们成功得到了1234,如果正则表达式中还有被()包裹的内容,那么可以依次使用group(2),group(3)来获取. search()方法: 前面讲到match()方法是从字符串开头开始匹配的,一旦开头不匹配,那么整个匹配就是失败了,请看下面例子: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.match(ello\s\w\w\w\w\w\s\d{3}\s\d{4}\s\w{8},content) print(result) 对于上面代码,相对之前,我们只去掉了开头的H,则变成了以下的结果: 但是我们用search()来替换match(),可以看见: 因此,为了方便,我们可以尽量使用search()方法. findall()方法 : 在介绍search()方法同时,我们发现,不管是match()方法,还是search()方法都只能返回匹配到的第一个内容,但是如果想要获取匹配正则表达式的所有内容,那该怎么办呢?这时就要借助findall()方法了.该方法会搜索整个字符,然后返回匹配正则表达式的所有内容. 因为用法类似,这里只介绍作用,就不用代码演示了 sub()方法: 除了使用正则表达式提取信息外,有时候还需要借助它来修改文本.比如,想把一串文本中的所有数字都去掉,如果只用字符串的replace()方法,那就太繁琐了,这时可以借助sub()方法.示例如下: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.sub(\d,,content) print(result) 结果显式: 这里只需要给第一个参数传入匹配的字符(这里是\d,代表所有数字),第二个参数为替换的字符串(这里是’’,及空字符,我们需要将所有的数字删掉),第三个参数是原字符串. 可以看见所有的数字都被删除 compile()方法; 前面方法都是用来处理字符串的方法,最后介绍一下compile()方法,这个方法可以将正则字符串编译成正则表达式对象,以便在后面的匹配中复用,示例如下: import re content Hello world 123 1234 Hello_my world demo re.compile(\d) result re.sub(demo,,content) print(result) 结果显式: 这里我们和上题一样,是想要删除字符串里面的数字,和上题不同的是,我们利用compile()方法制作了正则表达式对象,在后面使用时,可以直接套用此对象,更加的方便,快捷 通用匹配 之前我们所写的正则表达式其实比较复杂,出现空白字符我们写\s,出现数字写\d,如果每次书写都这样繁琐,工作量会变得非常大.其实完全没有必要,因为还有一个万能匹配可以使用,那就是.* ,其中.可以匹配任意字符(除了换行符),*可以匹配前面的字符无数次,所以它们合在一起就可以匹配任意字符了,因此,我们可以改写: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.search(.*,content) print(result) print(result.group()) print(result.span()) 结果如下: .*非常简单的匹配到了我们所有的字符 贪婪与非贪婪匹配 贪婪匹配 在使用.*时,有时候并不能匹配到我们想要得到结果,请看下面例子: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.search(H.*(\d)\s\d{4}\s\w{8},content) print(result) print(result.group()) print(result.group(1)) print(result.span()) 结果如下: 在这里,我们只想匹配到1前面的内容,再利用group(1)输出123,可是结果只显示了3,这是因为在贪婪模式下,.*会进可能的匹配更多的字符,.*后面是\d,也就是至少一个字符,并没有指定多少个数字,因此,.*就尽可能的匹配更多的字符,这里就将12匹配了,给\d留下来一个可满足条件的3了. 非贪婪匹配 前面,因为贪婪匹配,我们没有得到想要的结果,那该怎么办我们才可以匹配出自己想要的字符’123’呢?,其实,只需要使用非贪婪匹配就好了,非贪婪匹配的写法是.?,多了一个?,这样非贪婪模式会竟可能匹配少的字符,与贪婪模式相反,这样当匹配到Hello后面的字符时,后面就是数字了,而\d正好可以匹配,.?就不会取匹配,交给后面的\d了. 示例如下: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.search(H.*?(\d)\s\d{4}\s\w{8},content) print(result) print(result.group()) print(result.group(1)) print(result.span()) 结果显式: 所以,做匹配的过程中因尽量使用非贪婪匹配,以免出现匹配结果缺失的情况. 修饰符 正则表达式可包含一些可选修饰符来控制匹配的模式,我们可以用实例来看看: 当我们使用修饰符时,结果如下: import re content Hello world 123 1234 Hello_my world print(len(content)) result re.search(.*,content,re.S) print(result) print(result.group()) print(result.span()) 可以看到,没有使用修饰符时,字符串没有匹配完全,而加了修饰符才可以正确显式 修饰符    描述 re.I    使匹配对大小写不敏感 re.L    做本地化识别locale-aware匹配 re.M    使能够多行匹配影响 ^ 和 $ re.S    让点 . 匹配包括换行在内的所有字符 re.U    根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. re.X    该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解 其中较为常用的有re.S和re.I 转义匹配 正则表达式定义了许多匹配模式,如.用来匹配除了换行符之外的任意字符,但如果我们需要匹配的目标字符包含.该怎么办?这里就需要用到转义匹配了,当遇到用于正则匹配模式的特殊字符时,只需要在前面加反斜杠转义一下即可,例如可以用.来匹配.
http://www.w-s-a.com/news/905303/

相关文章:

  • wap网站建设设计wordpress首页名称
  • wordpress网站换空间南宁网站设计可以找我
  • 期货贵金属网站建设招远网站建设哪家专业
  • 上海网站排名个人网站可以做百度推广
  • 网站主题及样式优化个人网站 可以做论坛吗
  • 中企动力 网站推广一级域名免费申请
  • 山东专业的网站建设博罗做网站哪家强
  • 手机网站支持微信支付吗宝塔如何添加ip域名做网站
  • 什么专业学网站建设企业合同管理系统
  • 我要啦免费统计怎么做网站销售订单管理系统软件
  • 门户网站建设教程更改wordpress端口
  • 普兰店网站建设公司云计算培训
  • 网站建设的网络技术app下载平台哪个好
  • 中国建筑人才网是什么网站导购网站制作
  • 网站建设开票东莞龙岗网站建设
  • 17网站一起做网批最近湘潭的新闻
  • 专业网站设计专业服务网站news怎么做
  • 杭州租房网站建设设计网站架构
  • 安徽做网站公司哪家好建设网站需要什么内容
  • 哪些网络公司可以做机票预订网站网站新闻后台怎么做
  • 微网站 域名企业网站怎么做推广
  • 兴安盟住房和城乡建设部网站在国外做网站
  • 南雄市建设局网站搜索关键词的方法
  • 网站建设维护工作经验深圳定制展会
  • 新闻类网站备案WordPress评论昵称显示错误
  • 如何建立一个个人网站自己做一个购物网站
  • 吴忠网站建设公司中国建筑股份有限公司 官网
  • 深圳电商网站开发公司page list wordpress
  • 长安外贸网站建设顺德区网站设计建设企业
  • 临沂市建设局网站简介专业建设网站开发