二、常用的正则表达式本文着重讲解一些常用的正则表达式验证,如验证邮箱,身份证号,手机号等等…
好文章 记得 收藏+点赞+关注 !!!
- 验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
- 验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
- 验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
- 验证身份证号(15位或18位数字):“^d{15}|d{}18$”
- 验证一年的12个月:“^(0?[1-9]|1[0-2])$” 正确格式为:“01”-“09”和“1”“12”
- 验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
- 匹配中文字符的正则表达式: [u4e00-u9fa5]
- 匹配双字节字符(包括汉字在内):[^x00-xff]
- 匹配空行的正则表达式:n[s| ]*r
- 匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
- 匹配首尾空格的正则表达式:(^s*)|(s*$)
- 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
- 匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
三、一些小练习
public class RegexTest {
public static void main(String[] args) {
//使用正则表达式判断输入的手机号是否符合规则
System.out.println("请输入一个手机号");
Scanner sc = new Scanner(System.in);
String tel = sc.nextLine();
//定义手机号规则
String regex = "1[3589]\d{9}";
boolean matches = tel.matches(regex);
System.out.println(matches ? "输入的手机号格式正确" : "输入的手机号格式错误");
System.out.println("————————————————————————————————————————");
//使用正则表达式判断邮箱是否符合规则
//定义邮箱规则
String regex2 = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$";
String email = "JiaMing1027@qq.com";
boolean b = email.matches(regex2);
System.out.println("邮箱->" + email + " 是否符合规则:" + b);
System.out.println("————————————————————————————————————————");
//使用正则表达式判断身份证号是否符合规则
//定义身份证号规则(包括15位和18位身份证号)
String regex3 = "(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))" +
"(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])" +
"|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)";
//测试身份证号(随意输入的)
String id = "230203199711270616";
boolean b1 = id.matches(regex3);
System.out.println("身份证号->" + id + " 是否符合规则:" + b1);
System.out.println("————————————————————————————————————————");
//使用正则表达式查找字符串中超链接标签的地址
String str = "百度一下";
Pattern pattern = Pattern.compile("(?<=(href=\")).*?(?=\")");
Matcher matcher = pattern.matcher(str);
StringBuilder sb = new StringBuilder();
while (matcher.find()) {
sb.append(matcher.group());
sb.append("rn");
}
System.out.println(sb);
System.out.println("—————————————————————————————————————");
//测试分割功能
String age = "18-24";
String regex1 = "-";
String[] s = age.split(regex1);
int startAge = Integer.parseInt(s[0]);
int endAge = Integer.parseInt(s[1]);
System.out.println("请输入一个年龄");
Scanner sc1 = new Scanner(System.in);
int a = sc1.nextInt();
if (a < startAge || a > endAge) {
System.out.println("年龄不合适");
} else {
System.out.println("ok");
}
赶紧去IDEA敲一敲吧!
推荐阅读:
- 圣诞节用java画一棵圣诞树给你的女朋友
- 看腻了数字,拼图验证码?推荐一个开源项目——把验证码设计成射击游戏
推荐一个学java很好的网站:
http://www.java265.com/



