Java杂谈之正则表达式--日期,邮箱,数字验证

来源:互联网 发布:数据库limit的用法 编辑:程序博客网 时间:2024/06/11 18:17

当我们判断数据的格式是否符合规范的时候,一般会采用两种方式:

一种是if...else不断的嵌套或者if...else并排判断的方式

(这两者代表以条件正确为前提还是以条件错误为前提的)

另一种就是正则表示式。


字符串匹配给正则表达式:boolean matches(Stirng regex)

用法:String.matches(regex)


当然可以说if...else是万能的,正则表达式是有局限的,不能过分依赖,它只是解决问

题的一种手段而已,并不是必要的。

但往往用正确的使用正则表达式能让程序简洁,事半功倍。虽然有一些难懂,但只要熟悉

记住了常用的正则表达式还是很有必要的。


以下是代码示例,分别对日期,邮箱,数字进行简易的验证

(当然可能存在错误和思维漏洞,请大家辩证地去看,这边只是简易的而已,大神可以略

过的)


判断日期:

package JavaTestString;import java.util.Scanner;//正则表达式//求YYYY/MM/DD的正则表达式//\d{4}\d{2}/\d{2}public class JavaRegex {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String input = scan.next();//正则表达式格式验证if(!input.matches("\\d{4}/\\d{2}/\\d{2}")){System.out.println(input + "不满足'YYYY/MM/DD'的格式");}}}

判断邮箱格式:

package JavaTestString;import java.util.Scanner;//利用正则表达式判断邮箱是否符合规范public class JavaCheckEmailByRegex {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String email = scan.next();if(email.matches("\\w{3,}@\\w{1,}\\.(com|cn|net)")){System.out.println(email + "是正确的邮箱形式");}else {System.out.println(email + "不是正确的邮箱形式");}}}

判断是否为数字:

package JavaTestString;import java.util.Scanner;//判断一个数是否为数字//正负号有且只有一个,并放在首位//正负号后面紧跟数字//小数点只能在数字后面,且不能在最后,最多只能有一个public class JavaCheckNumberByRegex {public static void main(String[] args) {//[+|-]?\d+\.?\d+Scanner scan = new Scanner(System.in);String input = scan.next();String mathes = null;if(input.indexOf(".")>=0){mathes="[+-]?\\d+\\.?\\d+";}else{mathes = "[+-]?\\d+";}if(input.matches(mathes)){System.out.println(input + "是数字");}else{System.out.println(input + "不是数字");}}}

0 0