Java正则表达式

Java中的正则表达式

概念:

什么是正则表达式

简单说就是一组规则,类似日期格式化设置模式 yyyy-MM-dd

不是Java特有的一个东西,不同的开发语言有不同程度的支持

规则

  1. 字符串直接匹配

例如 “abc” 匹配 “abc”,

[abc]

  1. 表示一类事物

例如 :

[0-9] 表示的是0-9的任意一个数字

[a-z] 表示的任意的一个小写字母

[3578] 表示可以是任意的3或5或7或8

  1. 数量

例如

[0-9]{11} 表示任意的11位数字

[0-9]{6,18} 表示一个范围数字至少6位不大于18位

示例Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.ifueen.ZZ;
public class ZZ {

public static void main(String[] args) {
// TODO Auto-generated method stub
String pNum = "13759863548"; //输入进行验证的电话

String regx = "[0-9]{11}"; //给出验证规则

boolean matches = pNum.matches(regx); //将电话放进来验证
System.out.println(matches); //打印输出

String str = "137XCVB3548";
String replaceAll = str.replaceAll("[a-zA-Z]", "*"); //设置规则并验证是否符合
System.out.println(replaceAll);

str = "137,XCVB,3548";

String[] split = str.split(","); //根据给定正则表达式的匹配拆分此字符串
for (String string : split) {
System.out.println(string);
}

String num = "18469357869";
String reg = "1[3-9][0-9]{9}"; //设计正则表达式的规则
boolean matches2 = num.matches(reg); //将字符串和规则进行匹配
System.out.println(matches2);

String s3 = "13589642563";
//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
String s4 = s3.replaceAll("([0-9]{3})([0-9]{4})([0-9]{4})","$1****$2");

System.out.println(s4);

//身份证的正则表达式规则
String card = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([\\d|x|X]{1})$";
String cardId = "01058919960215854x";
boolean matches3 = cardId.matches(card); //进行匹配
System.out.println(matches3); //输出结果
}

}
❤赏点钱让我买杯快乐水8❤