什么是javascript 中的元字符?
元字符“?”与“( )”
元字符是一些具有特殊意义的专用字符,可以用于各种匹配关系。这里介绍两个元字符:'?'和'()'。
1 用?表示可选项
?表示紧靠其前的元素项是可选(可有可无)的。例如,abc?能匹配abc和ab。如果让?匹配多个字符,必须用圆括号将这些字符括起来,使之成为一个紧密结合的组合项。这样,后面的?就表示圆括号中的内容可有可无。例如,a(bc)?能匹配a和abc。
如果一个图书编号的格式或者是5个数字字符(如10101);或者是5个数字后面加上一个连字符(-),再加上4个数字组成的10位字符(如11111-1234)。那么,查找这种格式的图书编号时,就可以使用“"d{5}(-"d{4})?”作为匹配模式。
其中,"d表示匹配一个任意的数字字符,{5}表示紧靠其前的元素项连续重复5次,"d{5}表示匹配任意连 续的5个数字,等效于"d"d"d"d"d。-"d{4}匹配的是一个连字符(-)后加上4个任意数字,(-"d{4})?表示连字符(-)及其后的4个 数字可有可无。
2 用( )表示子匹配
除了能将多个元素组合成一个组合项外,括起来的表达式部分还称为一个子匹配(也称子表达式)。即可以用圆括号 在一个长的表达式中划分出子表达式。这样,除了可以得到整个正则表达式的匹配结果外,还可以得到每个子表达式所匹配的结果。子表达式匹配的内容按照从左到 右的顺序存储在缓冲区,该过程称为捕获。
子匹配捕获的内容可在表达式中位于该括号之后的地方被反向引用,第一个圆括号(即第一个子匹配)捕获的内容用"1表示,第二个用"2表示,依此类推。
例如,要匹配两个相同的连续数字字符的正则表达式是("d)"1;要匹配连续5个相同的数字字符的正则表达式为("d)"1{4};要匹配1221、3553、6776等这样千位与个位相等、百位与十位相等的数字,可以使用的正则表达式为("d)("d)"2"1。