正则写法小结
最近经常遇到用到正则表达式的情况,总结了一些写正则的经验:
以此场景为例:
需要字符串以部分非特殊字符为首,以部分非特殊字符为尾,中间部分可以为任意单词字符。
正则结果:
/^(([^%&',;=?$\\^])|([^%&',;=?$\\^][\w]*[^%&',;=?$\\^]))$/
测试结果:

写法总结:分析此字符串,有两种场景:
1. 只有一个字符的场景;
2. 有两个以上字符的场景;
然后针对每一种场景写对应的正则,最后组装起来。
第一种场景:/^([^%&',;=?$\\^])$/ 可以匹配一个字符的情况下不能是部分特殊字符;
第二种场景:/^([^%&',;=?$\\^][\w]*[^%&',;=?$\\^])$/ 可以匹配两个以上字符:首字符和尾字符不能是特殊字符。
总结构解析:

详解:

总结:
在正则表达式基础语法的基础上,需要对目的正则表达式按情况分组,然后逐渐细化,细分到每个字符如何表示,这样,一个整体的正则表达式就出来了。
网友评论