2014-02-12 32 views
0

我有一個字符串被傳入一個函數。 字符串看起來像這樣: "[teststring]"使用正則表達式的Java拆分方法

有些情況下,可能有多個字符串在那裏由分隔符分隔。 "[teststring, nogood; dontUse]"

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

這不起作用:

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

最終的結果應該只是:teststring

+3

問'請問這種work',嘗試之前。 –

+0

幾乎那裏只記得關於支架。祝你好運。 –

+0

一個問題是,你在正則表達式中有':',而不是';'。 – forgivenson

回答

2

你目前的做法將分裂爲,;,並抓住第一個元素,所以在這種情況下,你會得到逗號前的所有內容,結果將是"[teststring"。要獲得"teststring",您還需要在方括號中進行拆分,然後抓取第二個元素而不是第一個元素(因爲第一個元素現在是[之前的空字符串)。例如:

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

This working。Thanks – RXC

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 
-1

您可以使用一個簡單的正則表達式來獲得捕獲組在JavaScript

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

這是一個Java問題。 .. – Doorknob