1、正则表达式的作用:是一些特殊字符组成的校验规则,可以校验信息的正确性,校验邮箱是否合法电话号码,金额等。
2、API使用手册中搜索“pattern”就可以看到正则表达式的规则。
3、常用的正则表达式
单个字符 | [a,b,c] | a,b或c |
[^abc] | 任何字符,除了a,b,c | |
[a-zA-Z] | a到z或A到Z,两头的字母包括在内 | |
[a-d[m-p]] | a到d或m到p(注意要表达的意思是并集的概念) | |
[a-z&&[def]] | a到z与def的交集 | |
. | 任何字符 | |
\d | 数字:[0-9] | |
\D | 非数字:[^0-9] | |
\s | 空白字符:[\t\n\x0B\f\r] | |
\S | 非空白字符:[^\s] | |
\w | 单词字符:[a-zA-Z_0-9] | |
\W | 非单词字符:[^\w] | |
数量词 | X? | X,一次或一次也没有 |
X* | X,零次或多次 | |
X+ | X,一次或多次 | |
X{n} | X,恰好n次 | |
X{n,} | X至少n次 | |
X{n,m} | X至少n次,但是不超过m次 |
例:正则表达式用于检查
import java.util.Scanner;
public class _202174Demo {
public static void main(String[] args) {
System.out.println("请您输入电话号码:");
while (true) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.matches("\\d{3}-?\\d{5,}")) {
System.out.println("您输入的号码合法");
break;
}
else {
System.out.println(s);
System.err.println("请您重新输入:");
}
}
}
}
例:正则表达式应用于方法
public String[] split(String regex):
-- 按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
public String replaceAll(String regex,String newStr)
-- 按照正则表达式匹配的内容进行替换
String names = "许许许,vvv,aaa,eee,嵩嵩嵩";
String[] namesArrs = names.split(",");
for (String namesArr : namesArrs) {
System.out.println(namesArr);
}
System.out.println("------------------------");
String name1 = "许许许1243vvv1234aaa654eee1234567嵩嵩嵩";
for (String i : name1.split("\\d+")) {
System.out.println(i);
}
// 使用正则表达式定位出内容,替换成-
System.out.println(name1.replaceAll("\\d+","-"));