正则表达式学习笔记

167 阅读2分钟
原文链接: mp.weixin.qq.com

因为学习Python爬虫,正则表达式终于无法逃避了,不过也好,之前学习的时候没地方实践,导致看完就忘了。正则表达式是什么?维基百科是这样描述的。正则表达式是使用单个字符串来描述,匹配一系列匹配某个句法规则的字符串。通俗一点就是用来检索、替换那些匹配某个模式的文本。

规则

字符 含义
\b 匹配单词的开始和结束。
\d 匹配一个数字。
\d{2} 数字连续重复两次。
. 匹配除换行符意外的任意字符
\w 匹配字母、数字、下划线、汉字。
\s 匹配空白符。
^ 匹配字符串的开始。
$ 匹配字符串的结束。
\ 转义
* 重复零次或者更多次。
+ 重复一次或者更多次。
重复零次或者一次。
{n} 重复n次。
{n,} 重复n次或者更多次。
{n,m} 重复N次到M次。
[] 匹配没有预定义的元字符。
**\ **
() 分组.
\W 匹配任意不是字母,数字,下划线,汉字的字符。(反义)
\S 匹配任意不是空白符的字符。
\D 匹配任意不是数字的字符。
\B 匹配任意不是单词开头或者结束的字符。
[\^x] 匹配除了x以外的任意字符。
\1 引用组名,比如: \b(\w+)\b\s+\1\b\1代表  ( \w+)
(?\w+) 定义组别名,word就是\w+的别名。使用\k 引用表达式。也可以将<>换成''单引号。
(?=exp) 前断言,查找某些内容(但并不包括这些内容)之前或者之后的内容。比如 (?=ing),查找的字符串是 I'm singing while you're dancing.,那得到的结果是 sing和danc。
(?<=exp) 表示后断言。
(?#comment) 注释。
*? 重复任意次,但尽量少重复。
+? 重复一次+,但尽量少重复。
?? 重复0次或者一次,但尽量少重复。
{n,m}? 重复n到m次,但尽量少重复
{n,}? 重复n+次,但尽量少重复。

总结

暂时就到这,后面做爬虫的时候有什么添加的规则再完善。


欢迎长按下图 -> 识别图中二维码或者微信扫一扫关注我的公众号