我将一个字符串传递给一个函数。
字符串看起来像这样:
"[teststring]"
在某些情况下,可能有多个字符串在其中以分隔符分隔。
"[teststring, nogood; dontUse]"
如何使用java split方法提取第一个字符串,不包括括号,分隔符可以是逗号和/或分号?
这不起作用:
string args = "[teststring, nogood; dontUse]";
string temp = args.split("[,;]")[0];
最终结果应该是:teststring
。
答案 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]);