如何从java中的字符串中删除这些子字符串?
我有一个形式为“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