我有包含用以下格式表示的標記的文本:[text other text]
。如何使用String.split提取方括號之間的文本
我想分裂用方括號作爲分隔符字符串,但這:
String.split("\\[|\\]");
這不會給預期的結果。
我該怎麼做?
我有包含用以下格式表示的標記的文本:[text other text]
。如何使用String.split提取方括號之間的文本
我想分裂用方括號作爲分隔符字符串,但這:
String.split("\\[|\\]");
這不會給預期的結果。
我該怎麼做?
我不知道如果一個人可以用split()
做到這一點。隨着你的模式的模式尋找和[^\\]]+
(「所有符號,直到右括號」),這是相當直接的:
public static void main(String[] args) {
String line = "xx [text other text], [jili u babusi dva veselikh gusya], " +
"[a granny there was having two gay gooses] zz";
Matcher matcher = Pattern.compile("\\[([^\\]]+)").matcher(line);
List<String> tags = new ArrayList<>();
int pos = -1;
while (matcher.find(pos+1)){
pos = matcher.start();
tags.add(matcher.group(1));
}
System.out.println(tags);
}
可以使用Pattern.quote( 「你的模式GOES HERE」),如下所述,
str.split(Pattern.quote("["));
可以使用分割法,並把答案在數組
字符串[] d = s.split(「(\\ [)|(\\])」);
嘗試解釋你的代碼,而不是不知道爲什麼寫它 –
我知道這是問4年前,但對於具有相同/相似的問題,即土地在這裏(像我一樣)的人,有什麼比使用正則表達式更簡單:
String result = StringUtils.substringBetween(str, "[", "]");
在你的榜樣,result
將作爲「文本其他文本」返回,如果需要,可以使用StringUtils.split()進一步分割。我會推薦用於各種(相對簡單的)字符串操作的StringUtils庫;它自動處理空輸入等事情,這可以方便。
的文檔substringBetween(): https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#substringBetween-java.lang.String-java.lang.String-java.lang.String-
還有其他兩個版本此功能,取決於打開和關閉定界符是否相同,以及分隔符(或多個)是否發生在(多個)目標字符串多次。
哪個輸入,哪個結果是你期望得到的,哪個結果是你得到的? – SJuan76
請分享您的意見。 –
如果你對[方括號內的值]感興趣,你最好使用正則表達式和組匹配器。 – l3dx