No.
|
规范
|
描述
|
No.
|
规范
|
描述
|
1
|
\\
|
表示反斜线(\)字符
|
2
|
\t
|
表示制表符
|
3
|
\n
|
表示换行
|
4
|
[abc]
|
字符a、b或c
|
5
|
[^abc]
|
除了a、b、c之外的任意字符
|
6
|
[a-zA-Z0-9]
|
表示由字母、数字组成
|
7
|
\d
|
表示数字
|
8
|
\D
|
表示非数字
|
9
|
\w
|
表示字母、数字、下划线
|
10
|
\W
|
表示非字母、数字、下划线
|
11
|
\s
|
表示所有空白字符(换行、空格等)
|
12
|
\S
|
表示所有非空白字符
|
13
|
^
|
行的开头
|
14
|
$
|
行的结尾
|
15
|
.
|
匹配除换行符之外的任意字符
|
|
|
|
No.
|
规范
|
描述
|
No.
|
规范
|
描述
|
1
|
X
|
必须出现一次
|
2
|
X?
|
可以出现0次或1次
|
3
|
X*
|
可以出现0次、1次或多次
|
4
|
X+
|
可以出现1次或多次
|
5
|
X{n}
|
必须出现n次
|
6
|
X{n,}
|
必须出现n次以上
|
7
|
X{n,m}
|
必须出现n~m次
|
|
|
|
No.
|
规范
|
描述
|
No.
|
规范
|
描述
|
1
|
XY
|
X规范后跟着Y规范
|
2
|
X | Y
|
X规范或Y规范
|
3
|
(X)
|
做为一个捕获组规范
|
|
|
|
No.
|
方法
|
类型
|
描述
|
1
|
public static Pattern compile(String regex)
|
普通
|
指定正则表达式规则
|
2
|
public Matcher matcher(CharSequence input)
|
普通
|
返回Matcher类实例
|
3
|
public String[] split(CharSequence input)
|
普通
|
字符串拆分
|
No.
|
方法
|
类型
|
描述
|
1
|
public boolean matches()
|
普通
|
执行验证
|
2
|
public String replaceAll(String replacement)
|
普通
|
字符串替换
|
package com.pb.demo2; import java.util.regex.Pattern; public class RegexDemo1 { public static void main(String[] args) { String str="1234567890"; //声明字符串由数字组成 //使用正则验证 if(Pattern.compile("[0-9]+").matcher(str).matches()){ System.out.println("数字组成。"); }else{ System.out.println("不全是由数字组成。"); } } }
package com.pb.demo2; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * 验证一字符串是否是合法日期格式 */ public class RegexDemo2 { public static void main(String[] args) { String str="1983-07-23"; String pat="\\d{4}-\\d{1,2}-\\d{1,2}"; //定义规则 Pattern p=Pattern.compile(pat); //实例化pattern类对象 Matcher m=p.matcher(str); //验证字符串内容是否合法 //使用正则验证 if(m.matches()){ System.out.println("日期格式合法! !"); }else{ System.out.println("日期格式不合法! !"); } } }
package com.pb.demo2; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * 按照字符串的数字将字符串拆分 */ public class RegexDemo2 { public static void main(String[] args) { String str="A1B22C333D4444E55555F6G77"; String pat="\\d+"; //定义拆分的规则 Pattern p=Pattern.compile(pat); //实例化Pattern类 String [] ss=p.split(str); //拆分为字符串数组 //遍历 for (String s : ss) { System.out.print(s+"\t"); } } }
结果:
A B C D E F G
package com.pb.demo2; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * 按照字符串的数字将字符串替换 */ public class RegexDemo4 { public static void main(String[] args) { String str="A1B22C333D4444E55555F6G77"; String pat="\\d+"; //定义替换的规则 Pattern p=Pattern.compile(pat); //实例化Pattern类 Matcher m=p.matcher(str); //实例化Matcher类 String newStrirng=m.replaceAll("_");//替换的字符 System.out.println(newStrirng); } }
结果:
A_B_C_D_E_F_G_
package com.pb.demo2; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * 邮箱是否合法 */ public class RegexDemo5 { public static void main(String[] args) { Scanner input=new Scanner(System.in); //String pat="^[A-Za-z0-9_]+@[A-Za-z0-9_]+(.[A-Za-z_]{2,3}){1,2}$"; String regEx="^\\w+@\\w+(.[A-Za-z_]{2,3}){1,2}$"; System.out.println("输入邮箱:"); String email=input.nextLine(); Pattern p=Pattern.compile(regEx); Matcher m=p.matcher(email); if(m.matches()){ System.out.println("邮箱合法!!"); }else{ System.out.println("邮箱不合法!!"); } } }
No.
|
方法
|
类型
|
描述
|
1
|
public boolean matches(String regex)
|
普通
|
字符串匹配
|
2
|
public String replaceAll(String regex,String replacement)
|
普通
|
字符串替换
|
3
|
public String[] split(String regex)
|
普通
|
字符串拆分
|