public static void main(String[] args) {
String source = "first {test} is here,two {test2} is here!";
String find = "\\u007B.*\\u007D";
Pattern pattern = Pattern.compile(find);
Matcher matcher = pattern.matcher(source);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
我要实现的是将{test}和{test2}提取出来。但是用String find = "\\u007B.*\\u007D";获取出来的是
{test} is here,two {test2}
貌似获取的是第一个{和最后一个}。我怎么能用正则去提取每一对{}的呢?
因为这个字符串的内容不是固定的。所以无法使用类似下面的方式解决: String input = "first {test} is here,two {test2} is here!";
Scanner scanner = new Scanner (input);
scanner.findInLine ("first (.+) is here,two (.+) is here!");
MatchResult result = scanner.match();
解决方案 »
- 问一个java语言规范纯理论问题
- 如何用不在同一个java文件下的类 或者不再同一个包里面的java类做监视器啊
- 请教A udioFileFormat 能指定MP3 类型的吗? 怎么指定?
- 想用Java+Oracle9做一个基于C/S结构的简单图书管理系统,请各位前辈提供一点思路
- 关于try内变量作用域问题
- 为什么inner class在成员方法里面定义的时候,如果要使用该方法中的局部变量,这个局部变量一定要是final的
- 求swing实现类似qq聊天对话框的自动(激活)功能
- 怎样用程序输出如下字符串 hello "|" word 也即字符串hello和word中间加入"|"
- jdk环境变量的设置,折磨好几天了!!
- 新手小问题:一个try后跟两个catch,格式该咋样写?
- Component的setBackGround方法无效果
- 写一个java多线程访问数据库的程序,求指教
这次的这个问题让我深刻的体会到学习正则表达式的一个重要性了!
谢谢楼上兄弟们的帮助!