正则表达式实战

(1) 需求:导入时得判断价格是否为非负数,不能为特殊字符(eg:#)。

程序测试:

 

 实战:

 

 正则表达式如下:

^[1-9](\d*)([.][0-9]*)?$

解析:

^:匹配输入字符串的开始位置

[1-9]:设置第一个数字不是 0范围1到9。

\:将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。

\d*:\d表示匹配一个数字字符。等价于 [0-9],*表示匹配前面的子表达式零次或多次

[.][0-9]*:小数点后可以加零次或多次 [0-9]。

?:匹配前面的子表达式零次或一次例子中匹配([.][0-9]*)零次或一次,表示可能是小数或整数。

$:匹配输入字符串的结尾位置

(2) 需求:校验导入的sku只能由数字或字母组成,不能为特殊字符(eg:#)。

程序测试:

 

实战:

正则表达式:^[A-Za-z0-9]+$

解析:

^:匹配输入字符串的开始位置。

[A-Za-z0-9]:匹配数字或者大小写字母。

+:表示匹配前面的子表达式一次或多次。

$:匹配输入字符串的结尾位置。

 

posted @ 2020-01-24 11:36  JustJavaIt  阅读(195)  评论(0编辑  收藏  举报