正则表达式----regex
- 是什么? 是一个带有一定规律的表达式,是用来匹配字符串格式的。
- 能干什么?
- 数据格式校验
String类中提供的一个方法boolean=str.matches("regex");
- 字符串的拆分/替换
String类中提供的方法replace split等。
- 字符串的查找
需要两个类的支持,Pattern(模式)和Matcher(匹配器)
- 怎么用?
- 常见格式
boolean r=str.matches("a[abc]");//第一个字母必须是a,第二个字母是abc其中的一个
boolean r=str.matches("a[^abc]");//第一个字母必须是a,第二个字母是除了abc以外的任意一个
boolean r=str.matches("a[a-zA-Z]");//第一个字母必须是a,第二个字母是任意范围内的字母
boolean r=str.matches("a[a-z&&[^bc]]");//第一个字母必须是a,第二个字母a-z都可以,但不能是b和c
- 常用字符
a.用来描述字符的信息
. 代表任意一个字符
\d 代表0--9的一个数字【0,9】
\D 代表一个非数字
\s 一个空格/回车/换行(留白)
\S 一个非留白
\w 一个[0-9A-Za-z]数字或者字母都可以
\W 一个 [^0-9A-Za-z]
b.用来描述字符出现的次数
? 出现0次或1次
* 出现0-n次
+ 出现1-n次
{n} 出现固定的n次 如:\\d{6}给定的字符串中找0-9中的数字出现的6个
{n,} 至少出现n次(>=n次)
{m,n} 出现[m,n]次
- 字符串的查找
String str1 = "123456321abc123456111abc1234561112abc";
//1.利用Pattern类创建一个模式 理解为一个正则表达式对象
Pattern pattern= Pattern.compile("\\d{6}");
//2.需要提供一个字符串
//3.利用pattern模式对象创建一个匹配器
Matcher matcher = pattern.matcher(str1);
while(matcher.find()){
System.out.println(matcher.group());//找到满足字符串格式的那一串文字
}
输出为:
123456
123456
123456