正则表达式是文本处理的基础。正则表达式的“()”也常常出现在规则字符串中。初学者常对于何时使用这个()而感到困惑。很多书上都写到()表示组的概念,可是,这样模糊的概念还是不大有助于我们理解,今天,总结了一下这个()组的用法,现在记录下来。
‘()’常常应用的场合有以下三处:
1) 如果我们匹配dig或者dog,这样仅有一个公共字符的例子,我们可以d[io]g来匹配,可是如果我们的需求是glad或者good,这样两个或两个以 上的公共字符,则之前那种表示方法就有些过于繁琐了。这里我们就可以用组来方便地表示,即:g(la|oo)d这样的方法。
2)多字符的循环模式
我们用/go+d/来表示god,good,go......d,而如果我们想匹配出现good一次或多次的情况,就需要/(good)+/来表示了。
3)很多语言查找一组数据后会返回组的匹配结果
如:
js中的例子.
//从身份证中获取出生年月日信息
str = '420105195711121614';
//可以将年月日一一匹配出来
var re = //d{6}([12]/d{3}([01]/d)([0123]/d)/d{4}/;
document.write(id[0] + "<br/>");
document.write(id[1] + "-" + id[2] + "-" + id[3]);
返回结果为:
420105198211921614
1957-11-12