>假设我有一个字符串:"10 000,00 EUR"
或"1 000 000,00 EUR"
。
我想从字符串中删除除最后一个之外的所有空格,因此结果将是:"10000,00 EUR"
或"1000000,00 EUR"
。
目前我有这样的东西:
String myString = "1 000 000 EUR";
myString = myString.replace("\s(?=\s*\s)", "")
我假设我应该使用正则表达式前瞻表达式,该表达式与后面还有另一个空格的空格匹配?任何解决问题的答案将不胜感激。
尝试这样的事情:
Regex r = new Regex("\s");
myString = myString.replace(r, "");
如果您想确定它不是最后一个空格:
Regex m = new Ragex("\s\S+^"); \means: tha last space.
myString = myString.replace(m, "@@@@"); \escape the last space.
myString = myString.replace(r, ""); \delete the other spaces.
myString = myString,replace("@@@@", " "); \put back the last space on place we marked.
例如,该过程是:
myString = "100 00 0 ER">
=>"100 00 0@@@@ER"
=>"100000@@@@ER"
=>"100000 ER"
祝你好运!
像这样:
[^Srn](?=[0-9])
这个想法是匹配空格字符,除了换行符或后跟数字的回车符。
请参阅此答案以了解双阴性[^Srn]
的工作原理。
演示