我有一个字符串,我想确保格式始终是+
后跟数字。
下面将工作:如何除掉第一个字符以外的字符串中的所有非数字?
String parsed = inputString.replaceAll("[^0-9]+", "");
if(inputString.charAt(0) == '+') {
result = "+" + parsed;
}
else {
result = parsed;
}
但是,有没有办法让在replaceAll
一个正则表达式,将保持+
(如果存在)的字符串的开头和替换所有非数字在第一线?
NB:'replaceAll'将不添加'+'的情况下,有没有,所以我不明白你正在寻找 – 2015-10-18 12:14:50
[This regex](https:// regex101。我相信:搜索'(^ [+])| [^ 0-9] +'并替换为'$ 1'。 –
从你的代码中,你似乎允许输入诸如'abd + 3G45; {',这对我来说不太合理。您可能想要声明输入匹配某种模式'[+]?\ s * \ d + \ s *'而不是(白名单)。 – nhahtdh