正则表达式真像一块心病,有时间关键时刻就不知道怎么处理
今天看到一篇文章,突然,感觉来了,尝试写了几个真个表达式!
记住正则语法最好的办法就是记住这三样东西:
Bracket(括号),
caret(插入符号)和Dollars(美元符号)。
在正则表达式中有3种类型的括号
方括号 “[“和花括号“{“ 。 方括号”[“内是需要匹配的字符,花括号”{“内是指定匹配字符的数量。 圆括号“(“ 则是用来分组的。 插入符号 “^” 表示正则式的开始。 美元符号“$” 表示正则式的结束。
现在你知道上面的3个语法后,你就可以写世界上任何一条验证规则了。比如下面的例子就很好的说明了上面3条正则语法是如何协调运作的。
让我们开始第一个验证,输入的字符在a-g之间?
1 |
[a-g] |
输入的字符在a-g之间并且长度为3?
1 |
[a-g]{3} |
输入的字符在a-g之间并且最大长度为3最小长度为1?
1 |
[a-g]{1,3} |
我如何在匹配像91230456, 01237648那样的固定8位数?
1 |
^[0-9]{8}$ |
如何验证最小长度为3最大长度为7的数字,如:123, 1274667, 87654?
1 |
^[0-9]{3,7}$ |
如何验证像LJI1020那样的发票编号,前3个是字母剩余为8位长度的数字? 前三个是字母:
1 |
^[a-z]{3} |
后面是8位长度的数字:
1 |
[0-9]{8} |
所以整个表达式为:
1 |
^[a-z]{3}[0-9]{7}$ |
接下来:
一个完整的简单网址匹配
1 |
^www[.][a-z]{1,15}[.](com|org)$ |
如何验证email格式
1 |
^[0-9A-za-z]{1,10}@[0-9a-zA-z].(com|cn|org)$ |
你也可以用以下的快捷命令来简化你的正则表达式
1 2 3 4 5 |
[0-9] \d [a-z][0-9][_] \w 0次或多次发生 * 至少一次发生 + 0次或1次发生 ? |