首页 > 其他 > 详细

正则表达式

时间:2021-05-15 20:24:47      阅读:28      评论:0      收藏:0      [点我收藏+]

一.普通字符
二.元字符:有7类
1.字符集(以单个字符划分)以[]表示,[abf]:或者a或者b或者f

  [a-z]:匹配a-z之间的字符
  [^a-z]:匹配不在a-z之间的字符。
? 2.概括字符集:\d==[0-9]:匹配数字;
?   \w:表示该位置上的字符是字母或_;==[A-Za-z_]
?    \s:表示该位置上是不可见字符(空格、制表符\t、垂直制 表符\v、回车符\r、换行符\n、换页符\f)==[\f\n\t\r\v]
? 3.数量词有{3}:该字符出现三次/ {3-8}:该字符出现3-8次;
?    +:该字符出现次数≥1次;
?   ?:该字符出现0次或1次;贪婪模式
?    *:该字符出现≥0次;
?    . :在默认模式,匹配除了换行的任意字符。如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符
  ? .*:表示匹配除换行符外的任意字符
? 4.组:提取其中某一连续的满足 某个条件的字符串
?    (\d+),增加了()
? 三.match:在用match方法的时候有一个需要注意的地方,很重要,非常容易导致出错,
?    match方法是从content第一个字符开始去匹配\d,如果未匹配到,直接就返回None。这里因为content第一个字符不是数字,所以直接返回None
? 四.贪婪跟非贪婪
?   .*?表示非贪婪模式:是尽可能少地去匹配字符/匹配的越少,得到的结果越多
  ? .*表示贪婪模式,尽可能多的去匹配字符,python默认采取的是贪婪模式/匹配的越多得到的结果越少
? 五.search方法和sub方法与match方法的比较:
?    使用match方法,会从content的开头去匹配\d,没有匹配到就直接返回None 了。
?   而search方法也是从头开始匹配,只要匹配到有一个字符符合\d,就直接返回了,不会继 续往下匹配。
?   sub方法,这个方法能实现的功能是匹配出结果并替换掉内容
?    sub方法设计的精妙之处,就是sub的第二个参数可以是一个函数。就在于当你拿到匹配结果的时候,不一定要将它替换成固定的字符串,
?    你可以传递一个函数,在函数中对匹配结果进行逻辑处理,这样主动权就交到了用户手上,用 户可以随便处理

正则表达式

原文:https://www.cnblogs.com/blogbook/p/14772042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!