Pattern类,Matcher类
目录
2.2 find( ),groupCount( )和group( )
2.4 replaceFirst( )和replaceAll( )
在进行正则匹配时,"正则字符串"会被编译成Pattern对象保存在内存中,以"待匹配字符串"作为参数通过Pattern对象创建出Matcher对象,然后对匹配结果做针对性操作
1 Pattern类
java.util.regex.Pattern
方法名 | 说明 |
静态 compile("regex") | 将"正则字符串"编译成Pattern对象 |
matcher("str") | 使用Pattern对象创建Matcher对象 |
split("str") | 对str按照regex分隔,返回String[ ] |
静态 matcher("regex","str") | 对整串字符串的校验 |
Pattern pattern = Pattern.compile("\\d*");
-
Matcher matcher1 = pattern.matcher("abc456");
-
Matcher matcher2 = pattern.matcher("123456");
-
Arrays.toString(pattern.split("12ab33db56cf")); //返回[, ab, db, cf]
如果一个Pattern对象只用一次,则可以使用Pattern的静态方法matchs( ) String类的matchs( )方法本质就是调用Pattern类的matchs( )方法
boolean flag = Pattern.matches("\\d*", "123456");
2 Matcher类
java.util.regex.Matcher
方法名 | 说明 |
matchers( ) | 整个字符串与regex是否匹配,返回boolean |
lookingAt( ) | 字符串前面部分与regex是否匹配,返回boolean |
find( ) | 字符串继续往后匹配,是否还有满足regex的子串,返回boolean |
groupCount( ) | 返回regex表达式中捕获组个数 |
group(int) / group(nama) | 返回上一次find( )匹配过的子串的捕获组,无参默认0 |
start( ) | 返回上一次find( )匹配过的子串的开始索引 |
end( ) | 返回上一次find( )匹配过的子串的结束索引 1 |
replaceFirst(replacement) | 用replacement替换第一次匹配的内容 |
replaceAll(replacement) | 用replacement替换所有匹配中的内容 |
2.1 matchers( )和 lookingAt( )
-
Pattern pattern = Pattern.compile("\\d ");
-
Matcher matcher = pattern.matcher("123abc");
-
matcher.matches(); //返回false
-
matcher.lookingAt(); //返回true
2.2 find( ),groupCount( )和group( )
-
Pattern pattern = Pattern.compile("(\\d{3})-(\\d{7})");
-
Matcher mc = pattern.matcher("728-4765164 520-7758258");
-
while (mc.find()) {
-
System.out.println("分组的个数有:" mc.groupCount());
-
for (int i = 0; i <= mc.groupCount(); i ) {
-
System.out.println("第" i "个分组为:" mc.group(i));
-
}
-
}
-
-
//分组的个数有:2
-
//第0个分组为:728-4765164
-
//第1个分组为:728
-
//第2个分组为:4765164
-
-
//分组的个数有:2
-
//第0个分组为:520-7758258
-
//第1个分组为:520
-
//第2个分组为:7758258
2.3 start( )和end( )
-
Pattern pattern = Pattern.compile("[a-z] ");
-
Matcher matcher = pattern.matcher("123abc456def789");
-
while (matcher.find()) {
-
System.out.println("匹配子串" matcher.group() "开始于" matcher.start() "结束于" matcher.end());
-
//匹配子串abc开始于3结束于6
-
//匹配子串def开始于9结束于12
-
}
2.4 replaceFirst( )和replaceAll( )
-
Pattern pattern = Pattern.compile("\\d ");
-
Matcher matcher = pattern.matcher("12ab33db56cf");
-
matcher.replaceFirst("换"); //换ab33db56cf
-
matcher.replaceAll("换"); //换ab换db换cf
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbffab
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01