先前已经接触过一些正则表达式,以及实战应用。例如:日志切割、日志切割、日志切割……
不过都是在Linux中操作的。
作为一个Java开发人员,自然也避免不了需要使用到正则来秀一波操作。
*****正文分割线
场景:服务端接口提供者有一项工作是必须要做的,就是参数校验。比如字符串的长度限制(
同数据库保持一致)、有语义的字符串(电话号码、邮箱地址等)。目前“猿why”我的做法是
在需要校验的field上加注解,例如@NotNull、@NotBlank、@Pattern。
问题:比如某filed "tel"并不是非空属性,那么单纯使用如下注解,不就默认非空了?
@Pattern(regexp="^((13)|(15)|(18))[0-9]{9}")
private String tel;
也就是说,传入的tel为"" 空字符串或者null的时候就不行啦!
这可咋整啊!(东北口音语气)
这以前也没整过啊!
春(líng)光乍现
@Pattern(regexp="^((13)|(15)|(18))[0-9]{9}$|.{0}")
private String tel;
欢迎大佬指正
正则表达式
匹配顺序数字
场景:匹配顺序的数字,例如,123456。
零宽断言,{5}中是位数
(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\d