
简而言之,正则表达式就是对字符串进行定义和校验的工具
正则表达式及其匹配的字符串的格式w-----必须匹配指定字符w abc-----必须匹配指定字符abc [qwe]-----只匹配其中单个的字符 [ljx][125]-----两个里面各取一个进行组合 [a-z]-----匹配26个小写字母 [A-Z]-----匹配26个大写字母 [0-9]-----匹配1位数字 [a-z0-9A-Z]-----匹配三种里面的任意一个字符 d-----数字,相当于[0-9] D-----排除数字,相当于[^0-9] s-----空白字符 S-----排除空白字符 w-----字母数字下划线,相当于[a-zA-Z0-9_] W-----排除字母数字下划线,相当于[^a-zA-Z0-9_] . ------匹配任意单个字符 ?-----表示出现0次或者1次 *-----表示出现0次或者多次 +-----表示出现的次数>=1次 {3}-----表示出现的次数,此处为3次正则表达的两个应用 用正则表达式校验身份z号
package cn.tedu.api;
import java.util.Scanner;
public class TestRegex2 {
public static void main(String[] args) {
//1.身份z号的规则:一共有18位;前17位为数字,最后一位可能是数字,也可能是X
//2.编辑正则表达式
String regex = "[0-9]{17}[0-9X]";
//3.定义一个变量,用于接收用户输入的值
String input;
do {
System.out.println("请您输入身份z号:");
input = new Scanner(System.in).nextLine();
//判断是否正确,如果正确,循环结束
if(input.matches(regex)){
System.out.println("恭喜您!输入正确");
return;
}
}while (!input.matches(regex));//只要不符合正则,就循环继续输入
}
}
用正则表达式校验手机号
package cn.tedu.api;
import java.util.Scanner;
public class TestRegex3 {
public static void main(String[] args) {
//1.手机号的规则:一共有11位;不能以0开头;
// 规定:第一位为1.第二位为3或者8,其余位为数字即可
//2.编辑正则表达式
String regex = "1[38][0-9]{9}";
//3.定义一个变量,用于接收用户输入的值
String input;
do {
System.out.println("请您输入手机号:");
input = new Scanner(System.in).nextLine();
//判断是否正确,如果正确,循环结束
if(input.matches(regex)){
System.out.println("恭喜您!输入正确");
return;
}
}while (!input.matches(regex));//只要不符合正则,就循环继续输入
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)