正则表达式(1) 特殊符号和字符

1.常见的正则表达式符号
表示法 描述 正则表达式示例
literal 匹配文本字符串的字面值literal foo
re1|re2 匹配正则表达式re1或者re2 foo|bar
. 匹配任何字符(除了\n之外) b.b
^ 匹配字符串起始部分 ^Dear
$ 匹配字符串终止部分 /bin/*sh$
* 匹配0次或者多次前面出现的正则表达式 [A-Za-z0-9]*
+ 匹配1次或者多次前面出现的正则表达式 [a-z]+.com
? 匹配0次或者1次前面出现的正则表达式 goo?
{N} 匹配N次前面出现的正则表达式 [0-9]{3}
{M,N} 匹配M~N次前面出现的正则表达式 [0-9]{5,9}
[…] 匹配来自字符集的任意单一字符 [aeiou]
[…x-y…] 匹配x~y范围中的任意单一字符 [0-9],[A-Za-z]
[^…] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现) [aeiou],[A-Za-z0-9]
(*|+|?|{})? 用于匹配上面频繁出现/重复出现符号的非贪婪版本(* 、+、?、{}) .*?[a-z]
(…) 匹配封闭的正则表达式,然后另存为子组 ([0-9]{3})?f(oo|u)bar
2.正则表达式的特殊字符
表达式 描述 正则表达式示例
\d 匹配任何十进制数字,与[0-9]一致(\D与\d相反,不匹配任何非数值型的数字) data\d+.txt
\w 匹配任何字母数字字符,与[A-Za-z0-9_]相同(\W与之相反) [A-Za-z_]\w+
\s 匹配任何空格字符,与[\n\t\r\v\f]相同(\S与之相反) of\sthe
\b 匹配任何单词边界(\B与之相反) \bthe\b
\N 匹配已保存的子组N price:\16
\c 逐字匹配任何特殊字符c(即,仅按照字面意义匹配,不匹配特殊含义) .,\,*
\A(\Z) 匹配字符串的起始(结束) \ADear
3.正则表达式的扩展表示法
表示法 描述 正则表达式示例 匹配的字符串
(?iLmsux) 在正则表达式中嵌入一个或者多个特殊“标记”参数(或者通过函数/方法) (?x),(? im)
(?:…) 表示一个匹配不用保存的子组 (?:\w+.)*
(?P…) 像一个仅有name标识而不是数字ID标识的正则分组匹配 (?P)
(?P=name) 在同一个字符串中匹配由(?P (?P=data)
(?#…) 表示注释,所有内容都被忽略 (?#comment)
(?=…) 匹配条件是如果…出现在之后的位置,而不使用输入字符串;称作正向前视断言 (?.com) 如果一个字符串后面跟着".com"才做匹配操作,并不使用任何目标字符串
(?!..) 匹配条件是如果…不出现在之后的位置,而不使用输入字符串;称作负向前视断言 (?!.net) 如果一个字符串后面不是跟着".net"才做匹配操作
(?<=…) 匹配条件是如果…出现在之前的位置,而不使用输入字符串;称作正向后视断言 (?<=800-) 如果字符串之前为"800-"才做匹配
(? 匹配条件是如果…不出现在之前的位置,而不使用输入字符串;称作负向后视断言 (? 如果一个字符串之前不是"192.168."才做匹配操作
(?(id/name)Y|N) 如果分组所提供的id或者name(称)存在,就返回正则表达式的条件匹配Y,否则就返回N (?(1)y|x)

你可能感兴趣的:(爬虫)