一、基础打印范例
package com.hejingzhou.zehngzebiaodashi;
public class Test {
public static void main(String[] args) {
String str = "t";
// System.out.println(str.matches("x"));//表示由一位字符组成
String str1 = "a";
System.out.println(str1.matches("[abc]"));// 表示判断对象是否是中括号中的任意一个字符
System.out.println(str1.matches("[^abc]"));// 表示判断对象是否不是中括号给出的字符
System.out.println(str1.matches("[a-z]"));// 判断字符是否是中括号给定的字符范围小写英文
System.out.println(str1.matches("[a-zA-Z]"));// 判断字符是否是英文字母
String str2 = "0";
System.out.println(str2.matches("[0-9]"));// 判断是否是单个数字字符组成的
System.out.println(str2.matches("."));// 判断对象是否是单个字符
System.out.println(str2.matches("\\d"));// 也就相当于【0-9】但需要注意的是必须是俩个\\进行第二个\转义
System.out.println(str2.matches("\\D"));// 表示判断是否不是从0-9这个范围
String str3 = "\t";
System.out.println(str3.matches("\\s"));// 表示是否是空白字符(\t \n 都是空白字符)
System.out.println(str3.matches("\\S"));// 表示是否不是空白字符
String str4 = "d";
System.out.println(str4.matches("\\w"));// 表示是否是 有大小写字符数组成。
System.out.println(str4.matches("\\W"));// 表示是否不是由大小写字符数字组成。
/**
* 边界表达式: ^表示正则的开始 $表示正则的结束
*/
// 正则表达式? 表示次正则可以出现0次或者1次
String str5 = "";
System.out.println(str5.matches("\\d?"));// 这样的话如果str5是空的,那么这个返回的结果还是true
// 正则表达式+ 表示这个正则可以出现一次或者一次以上,但是没有写就是会返回false了
String str6 = "4432";
System.out.println(str6.matches("\\d+"));// str6中的数字可以是多位数的,但并不能保证他是空的
// 正则表达式* 表示这个正则表达式可以出现0次一次或者是多次
System.out.println(str6.matches("\\d*"));// str6这里可以写一个数字可以写多个数字,也可以不写数字,这样都会返回true
// 正则表达式{n} 表示这个正则表达式出现的次数必须为n此,否则返回false
String str7 = "432";
System.out.println(str7.matches("\\d{3}"));// 表示这个这则中的数字必须是三位数否则false
// 正则表达式{n,}
System.out.println(str7.matches("\\d{3,}"));// 表示这个字符出现的位数必须在3位包括三位以上
// 正则表达式{n,m}
String str8 = "4322gfds";
System.out.println(str8.matches("\\w{6,14}"));// 表示这个数字的长度需要在6--14位之间返回true,否则返回false
/**
* 正则1正则2 :正则1判断之后继续判断正则2 正则1 | 正则2 : 正则1 或者是正则2有一组满足即可
* (正则):将多个正则作为一组,可以为这一组单独设置出现的次数
*/
}
}
二、小例程
. 任意字符
+ 至少1个 {1,}
? 最多1个 {0,1}
* 任意个 {0,}
[0-9] 数字
[a-zA-Z] 字母
[a-zA-Z0-9] 字母和数字
[a-d[2-6]] abcd或23456 并集
[^0-9] 不是数字的字符,非数字
[a-f &&[d-w]] def 交集
[0-9[^3-6]] 任意字符
[0-9 &&[^3-6]] 0-2,7-9 交集
[\u4e00-\u9fa5] 中文
{1} 恰好出现1次
{1,} 至少1次
{1,3} 最少1次最多3次
\d 数字 [0-9]
\D 非数字 [^0-9]
\w 字母数字下划线 [a-zA-Z0-9_]
\W 非字母数字下划线 [^a-zA-Z0-9_]
\s 空白字符 [\r\n\t]
\S 非空白字符 [^\r\n\t]
^ 开头
$ 结尾
| 或者
//至少1位数字,只能是数字
regex="[0-9]{1,}";
//验证QQ号,5到11位数字
regex="[1-9]{1}[0-9]{4,11}";
//验证手机号,11位数字
regex="[1]{1}[3-8&&[^6]]{1}[0-9]{9}";
//验证是否为中文,2到4个中文
regex="[\u4e00-\u9fa5]{2,4}";
//验证用户名,字母数字下划线,只能以字母开头,最少6位最多18位
regex="[a-zA-Z]{1}\\w{5,17}";
//验证输入的是一年的12个月
regex="[0]{1}[1-9]{1}|[1]{1}[0-2]{1}";
//邮箱
regex="[a-zA-Z1-9]{1}\\w{4,17}@[a-zA-Z0-9]{2,6}\\.{1}[a-zA-Z]{2,}";
Scanner scanner=new Scanner(System.in);
String regex="[0-9]{1,}";//至少1位数字,只能是数字
regex="[1-9]{1}[0-9]{4,11}";//验证QQ号,5到11位数字
regex="[1]{1}[3-8&&[^6]]{1}[0-9]{9}";//验证手机号,11位数字
regex="[\u4e00-\u9fa5]{2,4}";//验证是否为中文,2到4个中文
//练习:验证用户名,字母数字下划线,只能以字母开头,最少6位最多18位
regex="[a-zA-Z]{1}\\w{5,17}";
//练习:验证输入的是一年的12个月
regex="[0]{1}[1-9]{1}|[1]{1}[0-2]{1}";
regex="[a-zA-Z1-9]{1}\\w{4,17}@[a-zA-Z0-9]{2,6}\\.{1}[a-zA-Z]{2,}";//邮箱
System.out.println("请输入你的邮箱:");
//练习:验证密码,只能有字母和数字组成,要求必须包含数字或字母
regex="([a-zA-Z]{1}|[0-9]{1})[a-zA-Z0-9]{1,}";
String msg=scanner.nextLine();
//matches:按照对应的正则表达式进行内容的校验
System.out.println("matches---->"+msg.matches(regex));