因为学习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+次,但尽量少重复。 |
总结
暂时就到这,后面做爬虫的时候有什么添加的规则再完善。
欢迎长按下图 -> 识别图中二维码或者微信扫一扫关注我的公众号