正则表达式的匹配字符特定格式

一个字符串,如果含有\字符,那么其后面必须跟两个数字,\字符的数量不确定,也可以没有\字符,你要怎么写正则表达式?

/\\\d{2}/g   如果不是很擅长正则,你可能写出来的是这个,但是这个正则只能匹配第一份\,后面的就不会匹配了

一般正则都是这样,如果出现一个符合规则的,那么test就是对的,如果你想凡是出现的都得符合,就得使用前瞻了

正则的前瞻,分为正向前瞻和负向前瞻。

正向前瞻用来检查接下来的出现的是不是某个特定的字符集。而负向前瞻则是检查接下来的不应该出现的特定字符串集。

看来正向前瞻符合要求,正向前瞻是?=

/\\(?=\d{2})/g  测试发现,还是只匹配第一个

试试负向前瞻,负向前瞻是?!

/\\(?!\d{2})/g  因为判断的\字符后面没有跟两个数字,所以需要对test结果取反

测试是通过的,负向前瞻会对整个字符串出现的\都进行匹配。

总结:

如果要对字符串不固定次数的特定字符匹配,需要用负向前瞻,最后还需要对结果取反,我觉的正则表达式是专门对字符解析的,对于这种情况不能一步到位,最后还需要对结果取反,是不应该的,是否应该加一个模式,可以设置让正则可以正向匹配每一个出现的格式,而不是只匹配第一个。

posted @ 2013-12-24 17:33  看远  阅读(2638)  评论(0编辑  收藏  举报