本文介绍了Java正则表达式供小白编程爱好者借鉴,因为我也是学习者,这是我的一点学习经验和心得,如有错误,请指出。废话不多说,开始步入正题。(ps:创作不易,有喜欢的小伙伴请点赞支持,谢谢啦!)
Regex
一、语法格式(常用)
在Java中:使用“ ”
在js中: 使用/ /
1. 字符:
类型 | 注释 |
---|---|
x | 字符x,列如‘a’,表达是字符a |
\\ | 反斜杠字符,用转义字符\修饰 |
\n | 换行 |
\r | 回车符 |
2. 字符类:
类型 | 注释 |
---|---|
[abc] | 表示abc中任意单个字符 |
[^abc] | 表示除了abc中任意单个字符 |
^[abc] | 表示abc中任意单个字符开头 |
[a-zA-Z] | 表示a到z,A到Z中任意单个字符 |
[0-9] | 表示0-9中任意单个数字 |
3. 边界适配器
类型 | 注释 |
---|---|
^ | 开头 |
$ | 结尾 |
\b | 单词边界 |
4. 预定义的字符类
类型 | 注释 |
---|---|
. | 除了换行符以外的单个字符 |
\d | 数字[0-9] |
\D | 非数字[0-9] |
\s | 空白字符 |
\S | 非空白字符 |
\w | 数字字母下划线[0-9a-zA-Z_] |
\W | 非数字字母下划线[^\w] |
5. 数量词
类型 | 注释 |
---|---|
x? | 表示x可以出现一次或一次也没有 |
x+ | 表示x至少出现一次 |
x* | 表示x可以出现零次或多次 |
x{n} | 表示x可以可以出现n次 |
x{n,} | 表示x至少出现n次 |
x{n,m} | 表示x至少出现n次,但不超过m次 |
二、功能
1. 判断功能
" ".matches(regex);
2. 分割功能
.split(regex);
3. 替换功能
.replace(regex,E);//这里E为替换元素
4. 获取功能
//Pattern与Matcher类的使用
三、匹配方式
三种匹配方式:
方式一:
bollean mc = "a".matcher(regex);//a为字符串
.
方式二:
boolean mc = Pattern.matcher(regex,"a");//a为字符串
.
方式三:
Pattern a = Pattern.compile(regex);//将正则表达式编译到模式当中
Matcher mc = a.matcher(a);//创建适配器
bollean Mc = mc.mattches();
四、分组
public static void main(String[] args) {
String s = "2021-01-06";
Pattern p = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");
Matcher matcher = p.matcher(s);
// 使用find方法来匹配
if(matcher.find()){
// matcher.group() 返回的是整个串的数据
System.out.println(matcher.group());//2021-01-06
// 分组:通过索引来获取第几组,索引为从左往右数第几个 (
System.out.println(matcher.group(0));//2021-01-06
System.out.println(matcher.group(1));//2021
System.out.println(matcher.group(2));//01
System.out.println(matcher.group(3));//06
}
}
}
以上是通过索引来查找,我们还可以通过去对应的字段来查找:
public static void main(String[] args) {
String s = "2021-01-06";
Pattern p = Pattern.compile("(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})");
Matcher matcher = p.matcher(s);
// 使用find方法来匹配
if(matcher.find()){
// matcher.group() 返回的是整个串的数据
System.out.println(matcher.group());//2021-01-06
// 分组:通过分组别名获取对应字段数据值
System.out.println(matcher.group("year"));//2021
System.out.println(matcher.group("month"));//01
System.out.println(matcher.group("day"));//06
}
}
}
好了,以上就是关于正则表达式的大致介绍,同学们快动手敲起代码来吧!!