.*匹配除 \n 以外的任何字符。
/[一-龥]/ 汉字
/[-]/ 全角符号
/[-ÿ]/ 半角符号
改进后的正则应该为:/([^a][\S]{2}|[\S][^b][\S]|[\S]{2}[^c])$/,最后三位数以外的字符,默认是任意字符,而且只要其结尾不为abc,则全部都能匹配。
最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n
查了下资料,用[\s\S]*匹配可以
解释:\s空白符,\S非空白符,所以[\s\S]是任意字符
参考资料:csdn博客
.+\r|\r+ 根据你的描述,你全都匹配完了,那还查个什么劲,多此一举,你不如Ctrl+A全选得了。
.匹配除换行符以外的任意字符
*重复零次或更多次
所以是包括所有的半角全角的
经过测试
^.*[^a][^b][^c]$ “张三李四”也符合的
写了一条正则: ^.*[^a][^b][^c]$
结果是 “张三李四” 这样的字符串不符合。
如果是“ADDD”就符合
====================
在python下测试,“张三李四”也符合
.*匹配除 \n 以外的任何字符。
/[\u4E00-\u9FA5]/ 汉字
/[\uFF00-\uFFFF]/ 全角符号
/[\u0000-\u00FF]/ 半角符号
---------------------
这个正则我写的,仔细想了之后,这个答案还不够严谨,例如末尾为aba,这个应当是符合规则的,但会被这个正则报false,上面提到的三点应该是或者的关系,只要符合其一,就能符合。
改进后:/([^a][\S]{2}|[\S][^b][\S]|[\S]{2}[^c])$/
不需要判断最后三位数以外的字符,默认即是任意字符,只要结尾不为abc,则全部都能匹配。