正则表达式小试

最近遇到一个需要,要求验证的条件要满足varchar2(即数字、字母、其他符号)要求位数<100。

首先输入数字 /【0-9】/意思就是可以输入0-9之间一个字符,匹配单个字符,因为是varchar2类型的数据,而且字符小于100,因此我们能只满足一个字符。

将/【0-9】/改为/【0-9】+/匹配一个或者多个字符。

接下来匹配字母,字母由小写a-z与大写A-Z构成,可以根据上面的式子推断出匹配多个数字和字母的正则表达式为:/]a-zA-Z0-9]+/。

接着匹配其他符号,其他符号也可以理解为非空格的符号,还有引号,可以使用\W,\表示转义,接下来就可以写为:/[a-zA-Z0-9\W]+/这样就可以匹配所有的数字,字母和大部分的符号了。

接下来就是限制输入的字符个数,可以写成/[a-zA-Z0-9\W]+{0,100}/要是这么写就错了,+号代表的是任意字符,然而{0,100}表示在0-100之间,一个任意一个限制了区间,发生冲突,此正则表达式不成立,应该写为:/[a-zA-Z0-9\W]{0,100}/。

下面总结一下正则表达式的语法:

\:将下一个标记为特殊字符,转义,比如\n就是换行

^:字符串开始的位置,^1 表示以1开头的字符串,也有非逻辑意义

$:匹配字符串结尾位置

*:零次或多次匹配前面的字符或子表达式,表示多个占位符,最少零个

+:一次或者是多次,表示多个占位符,最少一个

?:零次或者是一次,表示一个占位符

|:或逻辑,如x|y表示匹配x或者y

[xyz]:字符集包含其中任意的字符

[^xyz]:反向字符集,不包含其中

[a-z]:范围字符集,a到z之间的所有字母

[^a-z]:反向字符集,同上相反

\d:数字字符匹配,等价于[0-9]

\D:于\d相反

\S:匹配任何非空白字符

原文地址:https://www.cnblogs.com/zkyefei/p/9151300.html