正则表达式壹——基础语法【常用版】

  1. 1. 普通字符
    1. 1.1. [ABC]
    2. 1.2. [^ABC]
    3. 1.3. [A-Z]
    4. 1.4. .
    5. 1.5. [\s\S]
    6. 1.6. \ w \d
  2. 2. 特殊字符
    1. 2.1. $
    2. 2.2. ( )
    3. 2.3. *
    4. 2.4. +
    5. 2.5. ?
    6. 2.6. |
  3. 3. 捕获
    1. 3.1. ?= 和 ?<=
    2. 3.2. ?! 和 ?<!
  4. 4. 作用

普通字符

[ABC]

匹配 “ [ ] “ 内所有字符

[^ABC]

匹配除 “ [ ] “ 内所有字符

[A-Z]

区间匹配,字母A-Z

.

除了换行符外的任何单个字符

[\s\S]

# 注意反斜杠

小写s代指空白符(换行符一类),大写S代表非空白符

\ w \d

前者等价于 [A-Za-z0-9_],即所有字母数字下划线;后者指代所有数字

特殊字符

$

匹配到整个字符串的结尾位置。若设置 RegExp 对象的 Multiline 属性则可以多行匹配

( )

标记一个子表达式的开始和结束位置

*

匹配前面的子表达式零次或多次【无或有或更多】

+

匹配前面的子表达式一次或多次【有或更多】

?

匹配前面的子表达式零次或一次【无或有】

|

指明两项之间的一个选择

捕获

我也不知道这个标题应该咋起,主要是爬虫的时候会用到,简单易懂地写一写吧

?= 和 ?<=

?! 和 ?<!

和上面相反,感叹号代表否定(像是Python和C中的不等号是!=),放在主体前则要加 “<” 后面则不用。

作用

这篇文章是在计划抓取RSS feed内容的时候写的,故而根据上述所学,几乎可以简单抓取必要信息(以Mikan Project提供的feed为例),标题和磁链都可以直接获取(不直接下载种子是因为Aria2可以直接输入磁链批量下载,而用种子的话好像只能单个QuQ)

项目开始后的补充:

用findall的时候,要改为(.*?)非贪婪模式,否则容易过度抓取


参考来源:菜鸟教程