首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式从字符串中移除不需要的字符。

正则表达式从字符串中移除不需要的字符。
EN

Stack Overflow用户
提问于 2017-06-13 02:21:57
回答 3查看 3.4K关注 0票数 0

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

代码语言:javascript
复制
Income ......................4,456
liability........................56,445.99

我想要输出

代码语言:javascript
复制
Income 4,456
liability 56,445.99

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-13 02:30:12

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

代码语言:javascript
复制
System.out.println("asdfadf ..........34,4234.34".replaceAll("[ ]*\\.{2,}"," "));
票数 0
EN

Stack Overflow用户

发布于 2017-06-13 02:26:08

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

代码语言:javascript
复制
String input = "Income ......................4,456";
input = input.replaceAll("(\\w+)\\s*\\.+(.*)", "$1 $2");
System.out.println(input);

下面是对正在使用的模式的解释:

代码语言:javascript
复制
(\\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

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

输出:

代码语言:javascript
复制
Income 4,456

Demo

票数 0
EN

Stack Overflow用户

发布于 2017-06-13 02:25:51

最好的方法是:

代码语言:javascript
复制
String result = yourString.replaceAll("[-+.^:,]","");

这将取代这个特殊的角色。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44511393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档