正则基础之字符组、量词

2023-01-08  本文已影响0人  Tinyspot

1. 字符组

1.1 普通字符组

示例:
匹配十六进制字符
正则表达式:[0-9a-fA-F]

1.2 元字符与转义

1.3 排除型字符组

1.4 字符组简记法

1.5 字符组运算

匹配元音字母 [aeiou]
匹配辅音字母 [[a-z]&&[^aeiou]], 即从26个字母中“减去”元音字母,剩下的就是辅音字母

2. 量词

2.1 通用形式 {m,n}

2.2 常用量词(*、+、?)

示例1: 量词 ?
匹配 http和https,正则 https?

image.png

示例2: 量词 +
HTML tag 标签,如 <table>
正则表达式:<[^>]+>
说明:用<匹配开头的<,用>匹配结尾的>,用[^>]+匹配中间的“若干字符”

image.png

表达式 <[^/>][^>]*> 匹配 open tag,排除 </img>之类的close tag

image.png

示例3:量词 *
匹配双引号字符串(可以为空串 "")
正则表达式:"[^"]*"

image.png

3. 点号

3.1 匹配优先量词(greedy quantifier)

假设匹配引号里字符串用正则 ".*"
分析:
.可以匹配任何字符,*表示长度没有限制
此时 "try""try" and demo" 都能被匹配

image.png

3.2 忽略优先量词(lazy quantifier或reluctant quantifier)

忽略优先量词,把 * 改为 *?
*? 限定的元素出现次数范围与 * 完全一样,都表示“可能出现,也可能不出现,出现次数没有上限”
在实际匹配过程中,遇到能匹配的字符,先尝试“忽略”,如果后面的元素不能匹配,再尝试“匹配”

上一篇 下一篇

猜你喜欢

热点阅读