正则表达式从String中删除不需要的字符

时间:2017-06-13 02:21:58

标签: java regex string string-utils

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

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

我希望输出为

Income 4,456
liability 56,445.99

在java中编写此代码的最佳方法是什么。我正在解析大文件 因此,它应该是性能优化。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

Demo

答案 2 :(得分:-1)

最好的方法就是:

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

这将取代这个特殊角色。