在参考了多篇博客后。。。。得出一些自己觉得有用,但可能没什么用的总结。
例如:2到4位字母和数字的组合,第一位不能是数字1。正则表达式写出来就是这样:
^[2-9,0,a-zA-Z][\d,a-zA-Z]{1,3} $
是不是很像乱码,这就是我很抗拒它的一点。思路大概是将表达式按位分开处理,第一个[ ]里的内容匹配了了2-4位中的其中一位,意为匹配除 1 以外的数字和字母,第二个 [ ]匹配了剩下的1-3位,意为匹配数字和字母。其中^和$是作为正则表达式的开始和结束,[ ]是一个字符集合,[ ]里的 ‘’ ,‘’是分隔符。将2-9,0,a-zA-Z这三个表达式分开,表达式之间的关系为或。意为匹配除 1 以外的数字和字母,\d是匹配数字字符,a-zA-Z为匹配英文字符。{1,3}的是匹配的次数,至少匹配一次,至多匹配3次。
元字符 | 描述 |
^ | 一个正则表达式的开始 |
$ | 一个正则表达式的结束 |
[] | 包含,匹配所包含的任意一个字符 |
() | 保存表达式值,可引用 |
{n} | 固定匹配长度,例如 ^\d{3}$ 为匹配3位数字 |
{m,} | 至少匹配m位 例如 ^\d{3,}$ 为匹配至少3位数字 |
{m,n} | 至少匹配m位,至多匹配n位 例如 ^[a-z]{2,3}$ 为匹配至少2位,至多3位小写字母 |
. | 任意单个字符 |
[a-z] | 匹配26个小写字母 |
[A-Z] | 匹配26个大写字母 |
[0-9] | 0到9的数字 |
, | 分割符,例如[1,2,3] 为包含1或2或3中的任意一位 |
\ | 转义 |
? | 匹配长度为0位或者1位,等价于{0,1} |
* | 匹配长度为至少0次,等价于{0,} |
+ | 匹配长度为0位或者1位,等价于{1,} |
\d | 等价于[0-9] |
\D | 等价于[^0-9] |
\w | 等价于[A-Za-z_0-9],匹配包含字母数字及下划线 |
\W | 等价于[^A-Za-z_0-9],匹配不包含字母数字及下划线的字符 |
铸剑团队签名:
【总监】十二春秋之,3483099@qq.com;
【Master】巡山小钻风,840260821@qq.com;
【Java开发】雨鸶,343691194@qq.com;思齐骏惠,qiangzhang1227@163.com;小王子,545106057@qq.com;巡山小钻风,840260821@qq.com;
【VS开发】豆点,2268800211@qq.com;
【系统测试】土镜问道,847071279@qq.com;尘子与自由,695187655@qq.com;
【大数据】沙漠绿洲,caozhipan@126.com;张三省,570417591@qq.com;
【网络】夜孤星,11297761@qq.com;
【系统运营】三石头,261453882@qq.com;平凡怪咖,591169003@qq.com;
【容灾备份】秋天的雨,18568921@qq.com;
【安全】保密,你懂的。
原创作者:巡山小钻风
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。