正则表达式是能够描述字符串的格式的一种形式,在人机交互时,可以让计算机验证用户输入的内容是否匹配
正则表达式字符说明
正则表达式 | 说明 |
---|
[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));
}
}