基础部分
- 工具:egrep.
egrep '[regular expression]' filename
行首行尾
1 | ^ : 标记一行的开始位置 |
字符类
匹配任意字符
1 | [...] : 匹配中括号中的任意一个字符,中括号称为字符类 |
1 | - : 划定字符范围 |
否定字符类
1 | [^...] : 匹配任意不在中括号中的字符,与 [...] 相反 |
- 当 ^ 在中括号外面时表示行首标识符;当 ^ 在中括号里面时表示否定运算符
使用 ‘.’ 匹配 任意 字符
1 | . : 匹配任意字符 |
多个正则表达式
- 考虑如何将多个正则表达式结合到一起
1 | | : 或运算, a | b 表示匹配正则表达式或正则表达式b。为了限定或运算范围,必要时用小括号括起来,例如 (a|b) |
使用’?’匹配可选字符
- 考虑匹配 colour 或 color,这里的 u 可选出现或不出现
1 | ? : 可选运算,u? 表示匹配出现u或不出现u,作用对象为?的前一个字符 |
匹配重复字符
- 考虑一个字符重复多次: goooooooooooooooooood!,但是次数不定
1 | + : 匹配一个字符1次或多次(至少1次) |
运算符 | 字符最小出现次数 | 字符最大出现次数 |
---|---|---|
? | 0 | 1 |
+ | 1 | 无限 |
* | 0 | 无限 |
自定义字符重复次数
1 | u{min, max} : 匹配字符u最小重复min次,最大重复max次。尽可能多地统计 |
Python re 模块要点
转义字符
- 上述正则表达式规则基于Linux的egrep。针对Python的re模块,另有一些重要的转义字符可以用
字符 | 功能 |
---|---|
\d | 匹配数字,即[0-9] 可以写在字符集[…]中 |
\D | 匹配⾮数字,即不是数字 可以写在字符集[…]中 |
\s | 匹配空⽩,即空格,tab键 可以写在字符集[…]中 |
\S | 匹配⾮空⽩字符 可以写在字符集[…]中 |
\w | 匹配单词字符,即[a-zA-Z0-9_] 可以写在字符集[…]中 |
\W | 匹配⾮单词字符 可以写在字符集[…]中 |
re 模块常用函数及注意事项
待补充
{:.warning}
练习:常用正则表达式(Python re格式)
- 电子邮箱
\w{1,10}\.?\w{1,10}@(163|gmail|qq).com
- 日期
\d{4}[.-/]\d{2}[.-/]\d{2}
- HTTP/HTML URL
\<http://[^ ]+\.html?\>
参考资料
- Jeffrey E.F.Friedl, Mastering Regular Expressions
- python——正则表达式(re模块)详解. 版权声明:本文为CSDN博主「nee~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。