正则表达式的匹配字符特定格式
一个字符串,如果含有\字符,那么其后面必须跟两个数字,\字符的数量不确定,也可以没有\字符,你要怎么写正则表达式?
/\\\d{2}/g 如果不是很擅长正则,你可能写出来的是这个,但是这个正则只能匹配第一份\,后面的就不会匹配了
一般正则都是这样,如果出现一个符合规则的,那么test就是对的,如果你想凡是出现的都得符合,就得使用前瞻了
正则的前瞻,分为正向前瞻和负向前瞻。
正向前瞻用来检查接下来的出现的是不是某个特定的字符集。而负向前瞻则是检查接下来的不应该出现的特定字符串集。
看来正向前瞻符合要求,正向前瞻是?=
/\\(?=\d{2})/g 测试发现,还是只匹配第一个
试试负向前瞻,负向前瞻是?!
/\\(?!\d{2})/g 因为判断的\字符后面没有跟两个数字,所以需要对test结果取反
测试是通过的,负向前瞻会对整个字符串出现的\都进行匹配。
总结:
如果要对字符串不固定次数的特定字符匹配,需要用负向前瞻,最后还需要对结果取反,我觉的正则表达式是专门对字符解析的,对于这种情况不能一步到位,最后还需要对结果取反,是不应该的,是否应该加一个模式,可以设置让正则可以正向匹配每一个出现的格式,而不是只匹配第一个。