用于从字符串中删除不需要的字符的正则表达式



我有一个要求,我需要在java中删除字符串中不需要的字符。 例如 输入字符串为

Income ......................4,456
liability........................56,445.99

我希望输出为

Income 4,456
liability 56,445.99

用 java 编写它的最佳方法是什么。我正在解析大型文档 为此,它应该进行性能优化。

您可以用以下代码行替换:

System.out.println("asdfadf ..........34,4234.34".replaceAll("[ ]*\.{2,}"," "));

对于这个特定示例,我可能会使用以下替换:

String input = "Income ......................4,456";
input = input.replaceAll("(\w+)\s*\.+(.*)", "$1 $2");
System.out.println(input);

以下是正在使用的模式的说明:

(\w+)   match AND capture one or more word characters
\s*     match zero or more whitespace characters
\.+     match one or more literal dots
(.*)     match AND capture the rest of the line

括号中的两个数量称为捕获组。 正则表达式引擎在匹配时会记住它们是什么,并按顺序将它们作为替换字符串中使用的$1$2提供。

输出:

Income 4,456

演示

最好的方法是:

String result = yourString.replaceAll("[-+.^:,]","");

这将用任何东西取代这个特殊字符。

相关内容

  • 没有找到相关文章

最新更新