Java01-正则表达式

1.正则表达式的概念

1:正则表达式,(Regular Expression)缩写为regex。
2:正则表达式是一个字符串,用来定义规则,匹配一系列符合语法规则的字符串。
3:在开发中,正则表达式通常被用来检索、替换符合规则的文本。

2.正则表达式的规则

表达式 含义
\\ 表示\
\t 制表符,相当于TAB
\n 换行
\r 光标来到下一行的行首
[abc] 匹配adc中的一个
[^abc] 匹配除了adc的所有字符中的一个
[a-zA-Z] 匹配52个字母中的一个
[0-9] 匹配0-9中的一个
[a-zA-Z_0-9] 匹配52个字母或者0-9或者_(下划线)中的一个

3.预定义字符

预定义字符 含义
. 匹配任意一个字符,使用\\.
\d 匹配0-9中的一个
\w 相当于[a-zA-Z_0-9]
^ 代表行的开头([0-9]$
$ 代表行的结尾([0-9]$
\b 单词的边界(\b[adc]\b)adc左右需要一个非\w
x? 一次或者一次也没有
x* 零次或者多次
x+ 一次或者多次
x{n} x恰好出现n次
x{n,} x至少出现n次
x{n,m} x出现n-m次

4.正则的练习

表达式 含义
[0-9]{6,12} 123456(true),12345(false)
1[345678][0-9]{9} 手机号
a*b aaaab(true),abc(false)
\\d+ 正整数
\\d+\\.\\d+ 正小数
-\\d+ 负整数
\\d+\\.+\\d{2} 保留两位小数的整数
\\d+\\.+\\d{1,3} 保留1-3位小数的整数

5.正则表达式的方法

1:boolean matcher(String 正则的规则);
2:String[] split(String 正则的规则);按照规则进行分割
3:String replaceAll(String 正则的规则,String str);安装正则规则进行替换

6.正则表达式的匹配使用

/**
 * 匹配qq号 第一位不是0 一共5-10位
 * \d -> \会将d转义
 * 使用\\d 第一个\,将第二个\转义为,普通的\
 *
 * \D 匹配非数组
 */
public static void run1(){
    String qq = "145678945";
    boolean b = qq.matches("[1-9][\\d]{4,9}");
    System.out.println(b); //true
}
/**
 * 匹配手机号
 * 第一位是1 第二位是34578 一共11位
 */
public static void run2(){
    String s = "14456789456";
    boolean b = s.matches("1[34578][\\d]{9}");
    System.out.println(b);
}
/**
 * 匹配邮箱
 * 219305625x@qq.com
 * 219305625x@163.com
 * 219305625x@qq.com.cn
 */

public static void run3(){
    String mail = "219305625x@qq.com.cn";
    boolean b = mail.matches("[\\w]+@[a-z]+(\\.[a-z]+)+");
    System.out.println(b);
}

7.字符表达式的切割使用

/**
 * 切割ip
 * \\. 要将.转义,使用\,要输入一个\,必须输入\\
 */
public static void run2(){
    String str = "192.168...124";
    String[] strings = str.split("\\.+");
    for(int i = 0;i < strings.length;i++){
        System.out.println(strings[i]);
	}
}

8.字符表达式的替换使用

public static void run(){
    String s = "hel34456lo33333word";
    s = s.replaceAll("[\\d]+","#");
    System.out.println(s);
}
上一篇:Java01简介


下一篇:java 集合类