-
- Java 正则表达式
-
- 匹配单个字符
-
匹配多个字符
-
匹配0次或者一次
-
匹配数字或者非数字
-
匹配任何字符类字符0-9 a-z A-Z
-
或者
-
匹配中文字符
-
匹配空白字符
本文主要介绍java正则表达式的基本用法,常用的匹配。
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
下面为案列及代码。
注意:
matches方法中,() 中双引号中的内容为正则表达式
匹配单个字符
String str1 = “a”;
//只匹配字符a
System.out.println(str1.matches(“a”));//TRUE
//匹配0-9,a-z,A-Z 的单个字符
System.out.println(str1.matches(“[a-z0-9A-Z]”));//TRUE
//^在[]里面代表非 , 匹配不是0-9,a-z,A-Z 的单个字符
System.out.println(str1.matches(“[^a-z0-9A-Z]”));//false
匹配多个字符
String str2 = “java”;
//直接匹配相同的字符串
System.out.println(str2.matches(“java”));//true
//一个字符一个字符的匹配
System.out.println(str2.matches(“[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]”));//true
//{}代表几次
System.out.println(str2.matches(“[a-z0-9A-Z]{4}”));//true
//+代表一次或者多次
System.out.println(str2.matches(“[a-z0-9A-Z]+”));//true
System.out.println(“”.matches(“[a-z0-9A-Z]+”));//false
//*表示0次或者多次
System.out.println(str2.matches(“[a-z0-9A-Z]*”));//true
System.out.println(“”.matches(“[a-z0-9A-Z]*”));//true
匹配0次或者一次
String str3 = “abc”;
//匹配3-4个字符
System.out.println(str3.matches(“[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]?”));//true
System.out.println(“abcde”.matches(“[a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]?”));//false
匹配数字或者非数字
**注意:
此时使用 \ \ 是因为 \ 为转义**
String str4 = “123”;
String str5 = “abc”;
//匹配数字 /d
System.out.println(str4.matches(“\d+”));//true
System.out.println(str5.matches(“\d+”));//false
//匹配非数字
System.out.println(str4.matches(“\D+”));//false
System.out.println(str5.matches(“\D+”));//true
匹配任何字符类字符0-9 a-z A-Z
String str6 = “123”;
String str7 = “abc”;
String str8 = “%^&”;
//\w 匹配 0-9 a-z A-Z
System.out.println(str6.matches(“\w+”));//TRUE
System.out.println(str7.matches(“\w+”));//TRUE
System.out.println(str8.matches(“\w+”));//FALSE
//\W 匹配非 0-9 a-z A-Z
System.out.println(str6.matches(“\W+”));//FALSE
System.out.println(str7.matches(“\W+”));//FALSE
System.out.println(str8.matches(“\W+”));//TRUE