正则表达式

优势:

  更加通用(适应任何语言)

  可以提取文本中的指定信息

  可以提取非HTML中的信息

劣势:

  语法比较晦涩

常用方法:

表达式 说明
compile() 用于编译正则表达式,生成一个正则表达式(Pattern)对象
match()  查看字符串的开头是否符合匹配模式,如果匹配失败,返回none match().group()
search() 扫描整个字符串并返回第一个成功的匹配
findall() 找到所匹配的所有子串,并返回一个列表,如果没有,返回空列表

正则表达式符号:

^ 匹配字符串的开头
$ 匹配字符串的末尾
. 匹配任意字符,除了换行符
\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符,等价于[\t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意数字,等价于[0-9]
\D 匹配任意非数字
[...] 用来表示一组字符,[abc]匹配'a', 'm'或'k'
[^...] 匹配不在[]中的字符
re* 匹配0个或多个表达式
re+ 匹配一个或多个表达式
re? 匹配0个或1个定义的字段,非贪婪方式(只匹配一次)
re{n} 精确匹配 n 个表达式。例如, o{2}不能匹配“Bob”,但能匹配“food”
re{n,} 匹配 n 个表达式。例如, o{2,}不能匹配“Bob”,但能匹配“fooood”
re{n,m} 匹配 n 到mci由表达式定义的片段,贪婪方式

原文地址:https://www.cnblogs.com/JinZL/p/11718702.html