";
String reg2 = "
";
System.out.println(test.replaceAll(reg, "###"));
System.out.println(test2.replaceAll(reg2, "###"));
输出:
a
aavaabb
###
可见。完全匹配是最严格的,必须整个字符串匹配才行。
实例: 获取下面字符串中的大括号中的内容:
{one}{two}{three}
可以这样:
String s = "{one}{two}{three}";
//因为默认为贪婪模式,所以如果没有使用显示()组中的元素不能为大括号([^}]*),而是使用(.*),
//那么会匹配的字符串为:one}{two}{three
Pattern p = Pattern.compile("\\{([^}]*)\\}");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));//第一次匹配成功是one,第二次匹配成功是two,第三次匹配为three
}
输出
one
two
three
如果想要三个大括号中的 内容一起输出,可以这样:
String s = "{one}{two}{three}";
Pattern p = Pattern.compile("\\{([^}]*)\\}\\{([^}]*)\\}\\{([^}]*)\\}");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1) + ", " + m.group(2) + ", " + m.group(3));//获取该次匹配中组(),正则表达式中只有一个(),即只分了一个组
}
输出
one, two, three
关于组的实例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
public static void main( String args[] ){
// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(\\D*)(\\d+)(.*)";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(line);
if (m.find( )) {
//每次匹配成功之后,表示利用pattern 获取到了匹配的字符串,而pattern 中有三个小括号,即有三个
//组,那么每次匹配成功肯定有group(1),group(2),group(3),group(0)是它总是代表整个表达式
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
} else {
System.out.println("NO MATCH");
}
}
}
运行结果如下:
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000
Found value: ! OK?
文章来源: www.oschina.net,作者:文文1,版权归原作者所有,如需转载,请联系作者。
原文链接:https://my.oschina.net/u/2331760/blog/3145584
登录后可下载附件,请登录或者注册
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章
//点赞 收藏
0
点赞
0
收藏
链接复制成功
复制链接到剪贴板
分享文章到微博
分享文章到朋友圈
分享
相关文章
评论 (0)
0/1000
0/1000
评论
登录后可评论,请 登录 或 注册
评论
您没有权限执行当前操作
新窗
关闭
设置昵称
在此一键设置昵称,即可参与社区互动!
*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。
*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。