正则表达式
特殊字符
+
释义: abc+d 加号代表了前面的字符至少出现一次 (n>0 && n = int)
案例: abcd abccd ancccd abccccccccccccd
*
释义:abc*d 代表了星号前面的字符可出现0次(即不出现),也可以出现n次 (n>=0)
案例:abcd abcccd abd abccd
?
释义: abc?de 代表了?左边的字符只能出现或不出现 (n=0 || n=1)
案例: abcde abde
.
释义: 匹配除开换行字符的\n的任意单字符
()
释义: (*) 圆括号形式代表了把其包裹成一个表达式,可以提供给后续的$符号进行使用
[
释义: [ 方括号的起始括号代表了匹配一个方括号的开始字符即[
同理
{
也同次一样
^
释义: 匹配输入字符串的开始位置,当该符号出现在方括号表达式中时,表示不接受该方括号表达式中的字符合集。若要匹配自身切记加转义符\
限定符
*
+
?
{n}
释义: n为一个非负整数,匹配其前面字符的n次
案例: o{2}此表达式可以匹配 food中的oo 但是匹配不了 Bob里面那一个o
{n,}
释义:n为一个非负整数,至少匹配n次
案例: o{2} 不能匹配 Bob 能匹配 Boob Booob (均是匹配o)
{n,m}
释义: n,m均为非负整数,相当于一个闭区间,至少匹配n次,最多匹配m次
案例: o{1,3} 将匹配Fooooood中的前三个o,将匹配food中的 所有o,匹配fod中的所有o
单字符簇
以下字符簇需注意它始终只匹配<span style="font-size: bold; color: orange">一个字符</span>
[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9\.\-] //匹配所有的数字,句号和减号
[ \f\r\t\n] //匹配所有的白字符
以下字符簇代表了非括号里面的元素
[^a-z] //除了小写字母以外的所有字符
^[^0-9][0-9]$ //开头第一个字符不为数字
[^\\] //除了(\)之外的所有字符
[^\""]/ //除了双引号(")之外的所有字符 左边双引号应为一个
多字符簇
字符簇 | 描述 |
---|---|
^[a-zA-Z_]$ | 所有的字母和下划线 |
^[[:alpha:]]{3}$ | 所有的3个字母的单词 |
^a$ | 字母a |
^a{4}$ | aaaa |
^a{2,4}$ | aa,aaa或aaaa |
^a{1,3}$ | a,aa或aaa |
^a{2,}$ | 包含多于两个a的字符串 |
^a{2,} | 如:aardvark和aaab,但apple不行 |
a{2,} | 如:baad和aaa,但Nantucket不行 |
\t{2} | 两个制表符 |
.{2} | 所有的两个字符 |