我有一個形式爲「a_x,b_y,c_z」的java字符串。如何從java中的字符串中刪除這些子字符串?
我想擺脫大塊的_
前後,
.
所以我需要得到X,Y,Z。
我該如何做到這一點?
我試圖讓String.replaceAll(",*_",",")
工作,但得到的錯誤:在線程「主要」 java.util.regex.PatternSyntaxException
例外:黨嶺元字符「*」指標接近0
請幫助。
我有一個形式爲「a_x,b_y,c_z」的java字符串。如何從java中的字符串中刪除這些子字符串?
我想擺脫大塊的_
前後,
.
所以我需要得到X,Y,Z。
我該如何做到這一點?
我試圖讓String.replaceAll(",*_",",")
工作,但得到的錯誤:在線程「主要」 java.util.regex.PatternSyntaxException
例外:黨嶺元字符「*」指標接近0
請幫助。
這個工作對我來說:
String b = a.replaceAll("[\\w]_", "");
這取決於你需要更換,我正在考慮在類\ W只是文字的東西,但你可以調整這部分匹配任何你喜歡的。
*
意味着0或更多的出現,並且本身並不意味着什麼,這是一個錯誤。你必須指定你想要的0或多個正好的:
"a_x,b_y,c_z".replaceAll(",.*_", ",")
給出:
a_x,y,z
或更好:
"a_x,b_y,c_z".replaceAll(",[^_]*_", ",")
其中[^_]
指不_
任何字符。
「a_x,b_y,c_z」.replaceAll(「,[^ _] * _」,「,」)起作用且整齊。但如何擺脫第一個_以及? – xyz 2012-02-24 12:13:25
「a_x,b_y,c_z」.replaceAll(「,[^ _] * _」,「,」)。replaceAll(「^ [^ _] * _」,「」) – 2012-02-24 12:23:41
String input = "a_x,b_y,c_z";
for (String split : input.split(","))
{
String output = split.split("_")[1];
System.out.println(output);
}
爲循環(從x
到y
到z
)的每次迭代的可變output
變化。
瞭解正則表達式的工作原理。 ',* _'不是有效的正則表達式。請參閱java.util.regex.Pattern的API文檔。 – Jesper 2012-02-24 12:04:52
'String.replaceAll(「._」,「」);' – bdares 2012-02-24 12:05:28