文章中使用的工具
regex101: build, test, and debug regex
语法一:?
?表示:?前的字符存在0个或一个
举例:
语法二:*
*表示:*前的字符可以出现0次或多次(包括一次)
语法三:+
+表示:+前的字符存在一个或多个
语法四:{}
{}表示:{}前字符出现的次数要在{}的范围内
如:a{2} 表示a要连续出现两次。
XML
a - 不符合
aa - 符合
aba - 不符合
a{2, 6}表示a出现的次数在2-6这个范围内
XML
a - 不符合
aa - 符合
aaa - 符合
aaaaaa - (6个)符合
a{2, }表示a出现的次数大于等于2(可以是无穷多个)
a{, 6}表示a出现的次数在0-6
语法五:()
()表示:可以让多个字符去匹配规则
语法六:|
|表示:或者
如:
a|b 可以匹配a,也可以匹配b
a(b|c) 可以匹配ab,也可以匹配ac
语法七:[]
[]表示:
(1)只能匹配[]内的字符
如:[abc]
[abc]+
(2)[]中可以表示范围
如:
[a-z] 表示 从a-z的所有小写字母
[A-Z] 表示从A-Z的所有大写字母
[0-9] 表示从0-9的所有数字字符
[a-zA-z0-9] 相当于前三条加一起
(3)加上^表示该字符或者该范围的字符是不包含的
如:[^A-Z0-9]
语法八:元字符
(1)\d表示:数字字符
(2)\w表示:单词字符(包含字母、数字、下划线)
(3)\s表示:空白符(包含空格、tab字符、换行符)
(4)上面三条对应的大写表示的意思与其相反
如:\D表示:非数字字符,\W表示非单词字符,\S表示非空白符
语法九:.
.表示:任意字符(除了换行符)
语法十:^ 和 $
^表示匹配行首
$表示匹配行尾
语法十一:贪婪匹配和懒惰匹配
默认情况下是贪婪匹配
举例:
可以看到表达式匹配到了所有的字符
如果我们想将多个标签(如:<span>)拆分开,可以在.*后面加一个?
现在就匹配到了多个标签
语法十二:转义字符\
对于有特殊含义的字符(如:.表示匹配任意字符),我们可以通过在前面加上\让其作为正常字符
如:
\. 表示一个普通的英文句号.
正则提取的一个比较万能的写法
XML
(.*?)
(.*?)锁匹配的内容是你所需要的内容,在这个表达式的前后加上其前后字段即可
举例:
在正则提取中可以提取出cde字符串