1 + 匹配一个或多个字符
在给一个集合加上+后缀的时候,必须把+放在这个集合字符的外面
+是一个元字符,如果需要匹配+本身,就需要使用转义字符序列+
在字符集合里使用的时候,像.和+这样的元字符将被解释为普通字符,不需要转义
2 * 匹配该字符(或字符集合)出现零次或多次
?匹配某个字符的零次或一次出现
3 重复匹配
{}语法可以用来匹配重复次数 为重复匹配次数设定区间
例:{6} 重复6次
{2,4} 至少重复两次,最多重复4次
{3,}重复至少3次
+ 在功能上等于{1,}
贪婪性量词 懒惰性量词
* *?
+ +?
{n,} {n,}?
贪婪性量词:尽可能从一段文字开头匹配到末尾
懒惰性量词:匹配尽可能少的字符
4.位置匹配
\b 用来匹配一个单词的开头或结尾
\b 匹配的是字符间的一个位置:一边是单词(能够被\w匹配的字母数字字符和下划线),另一边是其他内容(能够被\W匹配的字符)
\B-\B 匹配前后都不是单词的连字符
^ 匹配开头
$ 匹配结尾
19|20 匹配19或者20
19|20\d{2} 匹配19或者“20后面再跟两位数字”
(19|20)\d{2}匹配年份 子表达式 用括号
有效的IP地址规则
1.任意的1位或者2位数字
2.任意的以1开头的3位数字
3.任意的以2开头、第二位数字在0到4之间的3位数字
4.任意的以25开头、第三位数字在0到5之间的3位数字
反向引用只能用来引用括号里的字表达式
例:[] +(\w+)[]+\1匹配连续两次重复出现的单词
反向引用和环视
() 定义一个字表达式
\1 匹配第一个子表达式;\2匹配第二个子表达式,以此类推
?= 肯定式向前看
?<= 肯定式向后看
?! 否定式向前查看
?<!否定式向后查看
?()条件(if then)
?()条件 (if then else)
大小写转换
\E 结束\L或\U转换
\l 把下一个字符转换为小写
\L 把后面的字符转换为小写,直到遇见\E为止
\u把下一个字符转换为大写
\U把后面的字符装换为大写,直到遇见\E为止
学到这里正则表达式入门了!