“\d$”在匹配“123”时,匹配成功,匹配结果为“3”,这个表达式要求匹配结尾处的数字,如果结尾处不是数字,如“123abc”,则是匹配失败的。
2.2.5 转义字符一些不可见字符,或是在正则中具有特殊意义的元字符,如想匹配字符本身,需要用“\”对其进行转义。
表达式 说明 \r,\n 回车和换行 \\ 匹配“\”本身 \^,\$,\. 分别匹配“^”、“$”和“.”
以下字符在匹配其本身时,通常需要进行转义。在实际应用中,根据具体情况,需要转义的字符可能不止如下所列字符
. $ ^ { [ ( | ) * + ? \
2.2.6 量词(Quantifier)量词表示一个子表达式可以匹配的次数。量词可以用来修饰一个字符、字符组,或是用()括起来的子表达式。一些常用的量词被定义成独立的元字符。
表达式 说明 举例 {m} 表达式匹配m次 “\d{3}”相当于“\d\d\d ” “(abc){2}”相当于“abcabc” {m,n} 表达式匹配最少m次,最多n次 “\d{2,3}”可以匹配“12”或“321”等2到3位的数字 {m,} 表达式至少匹配m次 “[a-z]{8,}”表示至少8位以上的字母 ? 表达式匹配0次或1次,相当于{0,1} “ab?”可以匹配“a”或“ab” * 表达式匹配0次或任意多次,相当于{0,} “<[^>]*>”中“[^>]*”表示0个或任意多个不是“>”的字符 + 表达式匹配1次或意多次,至少1次,相当于{1,} “\d\s+\d”表示两个数字中间,至少有一个以上的空白字符
注意:在不是动态生成的正则表达式中,不要出现“{1}”这样的量词,如“\w{1}”在结果上等价于“\w”,但是会降低匹配效率和可读性,属于画蛇添足的做法。
2.2.7 分支结构(Alternation)当一个字符串的某一子串具有多种可能时,采用分支结构来匹配,“|”表示多个子表达式之间“或”的关系,“|”是以()限定范围的,如果在“|”的左右两侧没有()来限定范围,那么它的作用范围即为“|”左右两侧整体。
表达式 说明 | 多个子表达式之间取“或”的关系
举例: