您的位置:首页 > 理论基础 > 计算机网络

在学习python网络爬虫时用到的正则表达式

2017-03-15 17:14 585 查看
符号

 

含义

 

例子

 

匹配结果

 

 

*

 

匹配前面的字符、子表达式或括号里的字符 0 次或多次

 

a*b*

 

aaaaaaaa,aaabbbbb,bbbbbb

 

 

+

 

匹配前面的字符、子表达式或括号里的字符至少 1 次

 

a+b+

 

aaaaaaab,aaabbbbb,abbbbbb

 

 

[]

 

匹配任意一个字符(相当于“任选一个”)

 

[A-Z]*

 

APPLE,CAPITALS,QWERTY

 

 

()

 

表达式编组(在正则表达式的规则里编组会优先运行)

 

(a*b)*

 

aaabaab,abaaab,ababaaaaab

 

 

{m,n}

 

匹配前面的字符、子表达式或括号里的字符 m 到 n 次(包含 m 或 n)

 

a{2,3}b{2,3}

 

aabbb,aaabbb,aabb

 

 

[^]

 

匹配任意一个不在中括号里的字符

 

[^A-Z]*

 

apple,lowercase,qwerty

 

 

|

 

匹配任意一个由竖线分割的字符、子表达式(注意是竖线,不是大字字母I)

 

b(a|i|e)d

 

bad,bid,bed

 

 

.

 

匹配任意单个字符(包括符号、数字和空格等)

 

b.d

 

bad,bzd,b$d,b d

 

 

^

 

指字符串开始位置的字符或子表达式

 

^a

 

apple,asdf,a

 

 

\

 

转义字符(把有特殊含义的字符转换成字面形式)

 

\.\ | \\

 

. | \

 

 

$

 

经常用在正则表达式的末尾,表示“从字符串的末端匹配”。如果不用它,每个正则表达式实际都带着“.*”模式,只会从字符串开头进行匹配。这个符号可以看成是 ^ 符号的反义词

 

[A-Z]*[a-z]*$

 

ABCabc,zzzyx,Bob

 

 

?!

 

“不包含”。这个奇怪的组合通常放在字符或正则表达式前面,表示字符不能出现在目标字符串里。这个符号比较难用,字符通常会在字符串的不同部位出现。如果要在整个字符串中全部排除某个字符,就加上 ^ 和 $ 符号

 

^((?![A-Z]).)*$

 

no-caps-here,$ymb0ls a4e f!ne
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: