正则表达式在括号之间获取数据

时间:2014-03-27 23:19:31

标签: java regex pattern-matching

我有一个我正在输入并需要处理的文件。 它包含需要存储的几个参数。 这不需要通过RegEx / Pattern完成,但我觉得这将是最有效的。我看了一些正则表达式的教程,但似乎没有人告诉我我需要什么。

示例文件(仅为示例创建

Characters = {e, o, d, f},
Values = {true, true, false, true}

我将把每个{}中的所有内容放入一个数组中,一旦我得到字符串就很简单。

那么,再次,我将如何获得e,o,d,f和true,true,false,true

3 个答案:

答案 0 :(得分:0)

您可以这样使用split()方法:

 String text = "Values = {true, true, false, true}";
 String[] values = text.split(",\\s|.*?\\s=\\s\\{|\\}.*");

这是使用3个模式进行分割(逗号,大括号之前没有括号的大括号,最后的大括号包括其后的内容)。

答案 1 :(得分:0)

正则表达式的替代方法是抓取括号内的整个字符串,然后执行String.split(",");

答案 2 :(得分:0)

试试这个:

String line = "Values = {true, true, false, true}";

// replacing anything before { and anything after } with 'empty'
line = line.replaceAll(".*?\\{|\\}.*", "");

// splitting the string with comma(with optional spaces around)
String []values = line.split("\\s*,\\s*");

for(String v : values){
    System.out.println(v);
}