首页 > 代码库 > Java杂谈之正则表达式--日期,邮箱,数字验证
Java杂谈之正则表达式--日期,邮箱,数字验证
当我们判断数据的格式是否符合规范的时候,一般会采用两种方式:
一种是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 + "不是数字"); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。