【发布时间】:2014-12-22 17:44:42
【问题描述】:
我想按照这样的规则格式化输入的字符串:替换字符串中除第一个位置以外的所有非数字符号:它应该只是数字或符号“+”。
我使用正则表达式功能
private static final String REGEXP_NOT_DIGITS = "[^\\+0-9]";
String result = sample.replaceAll(REGEXP_NOT_DIGITS, "");
但是这种替换的结果是在任意位置带有数字和“+”符号的字符串。 请帮助我澄清我的条件,即我将替换所有“+”符号,除了该行中的 1 个位置。
编辑。现在的输出是:
样本[0] 样本 = 0123456789;结果 = 0123456789 预期:0123456789
样本[1] 样本 = +380+380+380+;结果 = +380+380+380+ 预期:+380380380
样本[2] 样本 = dd0 11 22 33 44 55;结果 = 01122334455 预期:01122334455
样本[3] 样本 = +380-456(789);结果 = +380456789 预期:+380456789
样本[4] 样本 = d3+580 456 789;结果 = 3+580456789 预期:3580456789
样本[5] 样本 = +380456789;结果 = +380456789 预期:+380456789
一切正常,除了字符串中有符号“+”
【问题讨论】:
-
提供一个示例以及预期的输出..
-
你能添加一些示例输入和输出字符串吗?
-
@Alex 你能为每个样本添加预期的输出吗?
标签: java regex replaceall