一、 Pattern类简介
public final class Pattern extends Object implements Serializable
正则表达式的编译表示。
必须首先将正则表达式(指定为字符串)编译为此类的实例。 然后将所得的图案可以被用来创建一个Matcher
对象可以匹配任意character sequences针对正则表达式。 执行匹配的所有状态都驻留在匹配器中,所以许多匹配者可以共享相同的模式(API摘录)。
1.1特殊字符
1.2限定符
二、简单示例
2.1匹配数字
/**
* \d 的含义是 [0-9]
* \D 的含义是 [^0-9]
* {n} 匹配确定 n 次
*/
public static void matchNumber() {
Pattern p = Pattern.compile("summary_day\\.\\d+[0-9]\\.\\d{17}");
Matcher m = p.matcher("ipva.summary_day.20210621.20210622000205860.B20C41AB-0A17-46DB-9177-817533B8E551.1624291336921.txt");
System.out.println(m.pattern()); //myArray\[\d\]
while (m.find()){
System.out.println(m.group());
}
}
2.2匹配字母
/**
* \w 任何一个字母数字字符(大小写均可)或下划线,等价于 [A-Za-z0-9_]
* \W 表示[^A-Za-z0-9_]
* + 匹配前面的子表达式或一次或多次
*/
public static void matchAlphanum() {
Pattern pattern = Pattern.compile("^ipva\\.\\w+");
Matcher matcher = pattern.matcher("ipva.summary_day.20210621.20210622000205860.B20C41AB-0A17-46DB-9177-817533B8E551.1624291336921.txt");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
2.3特殊字符一
/**
* "*" 表示含有零个或者多个
* "+" 匹配前面的子表达式或一次或多次
*/
public static void matchRepeat() {
Pattern pattern = Pattern.compile("\\w+[\\w\\.]*@[\\d]+\\.\\w+");
Matcher matcher = pattern.matcher("Hello .kangll@163.com is my email address.");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
2.4特殊字符二
/**
* "*" 表示含有零个或者多个
* "+" 表示匹配前面的子表达式或一次或多次
* "?" 表示匹配零个或者一个字符
*/
public static void matchRepeat02() {
Pattern pattern = Pattern.compile("http[s]?://[\\w\\.]+");
Matcher matcher = pattern.matcher("The URL is http://www.kangll.com/");
while (matcher.find()) {
System.out.println(matcher.group(0));
}
}
谢谢点赞和关注!
今天的文章Java正则表达式 Pattern 类的用法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33238.html