package study;
import java.util.Scanner;
//正则表达式
public class exercise {
public static void main(String[] args) {
Scanner e=new Scanner(System.in);
// [] 1个字符
String r1="[abc]";
System.out.println("根据格式输入:"+r1+"只能输入[]内的其中一个字符");
String n1=e.nextLine();
if(n1.matches(r1)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// - 表范围
String r2="[a-z]";
System.out.println("根据格式输入:"+r2+"输入[]内范围的其中一个字符");
String n2=e.nextLine();
if(n2.matches(r2)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// \d 1个数字
String r3="[\\d]";// '\'为转义字符,'\\d'才表示为'\d'
System.out.println("根据格式输入:"+r3+"输入一个数字");
String n3=e.nextLine();
if(n3.matches(r3)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// \D 1个非数字
String r4="[\\D]";// '\'为转义字符,'\\D'才表示为'\D'
System.out.println("根据格式输入:"+r4+"输入一个非数字");
String n4=e.nextLine();
if(n4.matches(r4)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// ^ 表示否定,要在[]里面使用
String r5="[^b-g]";//
System.out.println("根据格式输入:"+r5+"输入不是b-g的字符");
String n5=e.nextLine();
if(n5.matches(r5)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// \w 一个字母,数字或下划线
String r6="[\\w]";// '\'为转义字符,'\\w'才表示为'\w'
System.out.println("根据格式输入:"+r6+"输入一个字母,数字或下划线");
String n6=e.nextLine();
if(n6.matches(r6)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// \W 一个字母,数字或下划线
String r7="[\\W]";// '\'为转义字符,'\\w'才表示为'\w'
System.out.println("根据格式输入:"+r7+"输入一个不是字母,数字或下划线");
String n7=e.nextLine();
if(n7.matches(r7)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// * 输入前面表达式的0次或多次
String r8="[\\d]*";
System.out.println("根据格式输入:"+r8+"输入0个或多个数字");
String n8=e.nextLine();
if(n8.matches(r8)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// + 输入前面表达式的1次或多次
String r9="[\\w]+";
System.out.println("根据格式输入:"+r9+"输入一个或多个一个字母,数字或下划线");
String n9=e.nextLine();
if(n9.matches(r9)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// ? 输入前面表达式的0次或1次
String r10="[\\w]?";
System.out.println("根据格式输入:"+r10+"输入0个或1个字母,数字或下划线");
String n10=e.nextLine();
if(n10.matches(r10)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// {n} 匹配多少次
String r11="ab[\\d]{3}";
System.out.println("根据格式输入:"+r11+"输入ab和3个数字");
String n11=e.nextLine();
if(n11.matches(r11)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
// {n,m} 至少匹配n次且最多匹配m次
String r12="ab[\\d]{3,5}";
System.out.println("根据格式输入:"+r12+"输入ab和3到5个数字");
String n12=e.nextLine();
if(n12.matches(r12)) {
System.out.println("输入正确");
}else {
System.out.println("输入错误");
}
}
}