正则表达式是能够描述字符串的格式的一种形式,在人机交互时,可以让计算机验证用户输入的内容是否匹配
正则表达式字符说明
| 正则表达式 | 说明 |
|---|
| [abc] | a、b、c中任意一个字符 |
| [^abc] | 除了a、b、c的任意一个字符 |
| [a-z] | a-z中任意一个字符 |
| [a-zA-Z0-9] | a-z、A-Z、0-9中任意一个字符 |
| [a-z&&[^bc]] | a-z中除了b和c以外的任意一个字符,&&表示“与”关系 |
预定义字符
| 正则表达式 | 说明 |
|---|
| . | 任意一个字符,除了\n |
| \d | 除了a、b、c的任意一个字符 |
| \w | 任意一个单词字符,相当于[a-zA-Z0-9] |
| \s | 空白字符,相当于[\t\n\x0b\f\r] |
| \D | 非数字字符 |
| \W | 非单词字符 |
| \S | 非空白字符 |
数量词
| 正则表达式 | 说明 |
|---|
| X? | 表示0个或1个X |
| X* | 表示0个或任意多个X |
| X+ | 表示1个到任意多个X(大于等于1个X) |
| x{n} | 表示n个X |
| X{n,} | 表示n个到任意多个X(大于等于n个X) |
| X{n,m} | 表示n个到m个X |
程序检验
package com.tedu.String;
public class MatchDemo {
public static void main(String[] args) {
String phone = "13025467890";
String regex="1[356789]\\d{9}";
System.out.println(phone.matches(regex));
String email = "waisjiw@ahpu.edu.cn";
String regex1 = "[a-zA-Z0-9_]{1,}@[a-zA-Z0-9]{1,}(\\.[a-zA-Z]{1,}){1,}";
String regex2 = "\\w+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
System.out.println(email.matches(regex1));
System.out.println(email.matches(regex2));
}
}