使用Regex的Java分割方法

时间:2014-02-12 19:58:14

标签: java regex string split

我将一个字符串传递给一个函数。 字符串看起来像这样: "[teststring]"

在某些情况下,可能有多个字符串在其中以分隔符分隔。 "[teststring, nogood; dontUse]"

如何使用java split方法提取第一个字符串,不包括括号,分隔符可以是逗号和/或分号?

这不起作用:

string args = "[teststring, nogood; dontUse]";
string temp = args.split("[,;]")[0];

最终结果应该是:teststring

3 个答案:

答案 0 :(得分:2)

您当前的方法将在,;上分开并获取第一个元素,因此在这种情况下,您将获得逗号之前的所有内容,结果将为"[teststring"。要获得"teststring",你也想要在方括号上拆分,然后抓住第二个元素而不是第一个元素(因为第一个元素现在将是[之前的空字符串)。例如:

String args = "[teststring, nogood; dontUse]";
String temp = args.split("[\\[\\],;]")[1];

答案 1 :(得分:1)

您可以创建模式,而不是split,它可以找到[之后的子字符串,并且只包含不是分隔符的字符。这是示例

String data = "[teststring, nogood; dontUse]";
Pattern p = Pattern.compile("\\[([^,;]+)");
Matcher m = p.matcher(data);
if (m.find())
    System.out.println(m.group(1));

输出:

teststring

答案 2 :(得分:-1)

您可以使用简单的正则表达式来获取javascript中的捕获组

var str = "[teststring, nogood; dontUse]";
var res = /(\w+)/.exec(str);
console.log(res[1]);