java中的正则表达式
Posted 邓维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的正则表达式相关的知识,希望对你有一定的参考价值。
java中的正则表达式:
1:常见的表示规则:
1 \ 反斜线字符 (即:)
2
3
4 字符类
5 [abc] a、b 或 c(简单类)
6 [^abc] 任何字符,除了 a、b 或 c(否定)
7 [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
8 [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
9 [a-z&&[def]] d、e 或 f(交集)
10 [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
11 [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
12
13 预定义字符类
14 . 任何字符(与行结束符可能匹配也可能不匹配)
转意字符 (\表示:,\.表示:.即:点本身)
15 d 数字:[0-9]
16 D 非数字: [^0-9]
17 s 空白字符:[
x0Bf
]
18 S 非空白字符:[^s]
19 w 单词字符:[a-zA-Z_0-9]
20 W 非单词字符:[^w]
21
22 边界匹配器
23 ^ 行的开头
24 $ 行的结尾
25 单词边界
26 B 非单词边界
27 A 输入的开头
28 G 上一个匹配的结尾
29 输入的结尾,仅用于最后的结束符(如果有的话)
30 z 输入的结尾
31
32 Greedy 数量词
33 X? X,一次或一次也没有
34 X* X,零次或多次
35 X+ X,一次或多次
36 X{n} X,恰好 n 次
37 X{n,} X,至少 n 次
38 X{n,m} X,至少 n 次,但是不超过 m 次
例子:1:判断是否是手机号是否以13或18开头,满足11位:
1 public class RegexDemo { 2 public static void main(String[] args) { 3 //键盘录入手机号码 4 Scanner sc = new Scanner(System.in); 5 System.out.println("请输入你的手机号码:"); 6 String phone = sc.nextLine(); 7 8 //定义手机号码的规则 9 String regex = "1[38]\d{9}"; 10 11 //调用功能,判断即可 12 boolean flag = phone.matches(regex); 13 14 //输出结果 15 System.out.println("flag:"+flag); 16 } 17 }
2:验证邮箱:
1 /* 2 * 校验邮箱 3 * 4 * 分析: 5 * A:键盘录入邮箱 6 * B:定义邮箱的规则 7 * [email protected] 8 * [email protected] 9 * [email protected] 10 * [email protected] 11 * [email protected] 12 * C:调用功能,判断即可 13 * D:输出结果 14 */ 15 public class RegexTest { 16 public static void main(String[] args) { 17 //键盘录入邮箱 18 Scanner sc = new Scanner(System.in); 19 System.out.println("请输入邮箱:"); 20 String email = sc.nextLine(); 21 22 //定义邮箱的规则 23 //String regex = "[a-zA-Z_0-9][email protected][a-zA-Z_0-9]{2,6}(\.[a-zA-Z_0-9]{2,3})+"; 24 String regex = "\[email protected]\w{2,6}(\.\w{2,3})+"; 25 26 //调用功能,判断即可 27 boolean flag = email.matches(regex); 28 29 //输出结果 30 System.out.println("flag:"+flag); 31 } 32 }
以上是关于java中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章