正则表达式笔记

正则表达式类似通配符

\b:单词的分界处,包括开头和结尾,只匹配一个位置。E.G:\bhi\b即为搜索hi

但如果hi 后面跟了一个Lucy,匹配\bhi\b.*\bLucy\b

.:匹配除了换行符以外的任意字符

*:前边的内容可以连续重复使用任意次以使整个表达式得到匹配

所以\bhi\b.*\bLucy\b:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。

\d:匹配一个数字

简化方式:

0\d\d-\d\d\d\d\d\d\d\d == 0\d{2}-\d{8}

\s:任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格

\w:字母或数字或下划线或汉字等

+:与*类似,匹配重复1次或更多次

^:匹配字符串的开始

$:匹配字符串的结束

{2}匹配只能不多不少重复2次,

{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配

{n,}重复n次或更多次

?重复零次或一次

[) -]?:) -三个字符中的一个可能出现或不出现

deerchao\.net匹配deerchao.net


|:把不同的分支条件隔开

(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次

\B:匹配不是单词开头或结束的位置

[^x]:匹配除了x以外的任意字符

捕获与反向捕获:

\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go,重点在于其中的\1:分组1中捕获的内容(也就是前面匹配的那个单词)

(?<Word>\w+)(或者把尖括号换成'也行:(?'Word'\w+)),这样就把\w+的组名指定为Word了

\k<Word>即为反向捕获

零宽断言:

(?=exp)也叫零宽度正预测先行断言,\b\w+(?=ing\b)在I'm singing while you're dancing.匹配sing和danc

(?<=exp)也叫零宽度正回顾后发断言,(?<=\bre)\w+\b在reading a book匹配ading

负向零宽断言:

(?!exp),断言此位置的后面不能匹配表达式exp

(?<!exp),断言此位置的前面不能匹配表达式exp

贪婪与懒惰:

贪婪匹配:(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符,反之为懒惰匹配

---需要的时候再查吧


简单示例:

>>>importre>>>regex=re.compile(r'\b\w{6}\b')# 匹配6个字符的单词>>>regex.search('My phone number is 421-2343-121')>>>text=regex.search('My phone number is 421-2343-121')>>>text.group()# 调用 group() 返回结果'number'

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 6,535评论 0 9
  • 元字符量词字符类分支条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配其它 元字符 ...
    神刀阅读 2,118评论 0 0
  • 注:本篇文章只为方便查看,特此保留,如有冒犯,敬请谅解!!! 本文目标 30分钟内让你明白正则表达式是什么,并对它...
    阿杰Alex阅读 5,367评论 0 10
  • 版本:v2.3.5 (2017-6-12) 作者:deerchao 转载请注明来源 目录 跳过目录 本文目标 如何...
    readilen阅读 4,585评论 2 13
  • python re模块重要函数变量:1. compile() 根据正则表达式字符串,创建模式的对象。2. sear...
    野狗子嗷嗷嗷阅读 2,472评论 0 1

友情链接更多精彩内容