在参考了多篇博客后。。。。得出一些自己觉得有用,但可能没什么用的总结。
例如: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;
【安全】保密,你懂的。
原创作者:巡山小钻风
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。