正则分析
Last updated
Was this helpful?
Last updated
Was this helpful?
该章节主要结合具体使用列子,分析中高复杂度的正则表达式
十六进制的色值表示方法有两种,分别是3位数和6位数,并以#开头,如:白色(#fff),黑色(#000000)
解析
[a-f0-9],十六进制由0-9数字和a-f字母组成,其中字母
#, 十六进制的色值以#开头
([a-f0-9]{3}){1,2},十六进制色值有3位和6位,其中{3}表示中括号中的字符出现3次,{1,2}表示圆弧括号中的3个字符重复1次或2次
\b,每个色值后跟随空格,标点符号等,进而可以使用\b表示一个单词的结束
gi,正则标志,全局匹配,不区分大小写
提取内容包含正浮点数,正整数,排除0,负数
解析
[1-9],表示正数以1-9开头,一位数字
\d*,表示0-9数字出现0次或多次
(\.\d+)?,表示小数点可有可无
数字包含负数,正数,整数,浮点数,以及0
解析
-?,表示匹配负数与正数
\d+,表示匹配0-9
(\.\d+)?,表示小数点可有可无
html标签结构为<h1 id="h1-id" class="h1-tag">The h1</h1>,其中h1为标签名,h1-tag为class名称,h1-id为标签id
解析
([a-z\d]+),匹配标签名
[^>]*?,最小匹配非>字符,若没有最小匹配,则该模式也可以匹配class属性与值
class="([a-z\d-_]*)",匹配class属性值,注意该模式无法匹配多个class值的场景
[^>]*,尽可能多的匹配非>字符,以便达到标签结束位置