java中的正则表达式的简单实用demo
需要注意项:
- java中的反斜线需要两个
- 在获取配置项是需要先调用matcher.matches() 和matcher.find()中的一个方法来判断 匹配中了没有
- 表达式的初始化可以放在成员变量中, 没必要重复初始化
- 可以先在一些在线正在表达式网站上面先调试好正则
public static void main(String[] args) {
//可以把这句放在类的成员变量中, 因为每次生成对象耗费资源。 并且正则表达式是线程安全的
//具体的正在表达式的知识,请参考https://www.runoob.com/regexp/regexp-metachar.html
//建议先在在线正则表达式网站中调试好表达式, 再拷贝到idea中,idea中字符串拷贝会自动给你加上两个\\,十分方便
Pattern pattern = Pattern.compile(".*副本(\\((\\d+)\\))?$");
//开始正则匹配
Matcher matcher = pattern.matcher("文件名称副本(2)");
//在获取具体的正则表达式的时候,请先调用下matcher.matches() 和matcher.find()中的一个方法。 不然会获取失败
if (matcher.matches()) {
// 这个groupCount返回的数字,表示的子正则(就是上面正则中的括号内)匹配中的个数。
//所以如果要遍历上面的正则匹配的结果,可以在这个i上加1后循环
int count = matcher.groupCount();
System.out.println(count);
System.out.println(matcher.group(0));
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
}
运行结果: