【发布时间】:2015-10-14 23:49:29
【问题描述】:
我想修复 String 中格式错误的省略号 (...)。
"Hello.. World.."
"Hello... World..." // this is correct
"Hello.... World...."
"Hello..... World....."
应该全部改正为:
"Hello... World..."
以下正则表达式处理 3 个或更多 个连续 . 的任何实例:
line.replaceAll("\\.{3,}", "...");
但是,当有 恰好 2 个连续的. 时,我不知道如何处理这种情况。我们不能这样做:
line.replaceAll("\\.{2}", "...");
例如,对于"...",上面的代码将返回"......",因为正则表达式将替换前2个.(索引0和1),然后是接下来的2个.(索引 1 和 2),生成 "..." + "..." = "......"。
这样的工作:
line.replaceAll("\\.{2}", "...").replaceAll("\\.{3,}", "...");
...但一定有更好的方法!
【问题讨论】:
-
只有两个或更多句点被三个替换?
-
line.replaceAll("\\.+", "...");怎么样?这将用您想要的...替换任何点序列(例如.、..、...、........)序列。 -
这是一个“gimme teh codez”问题。它应该关闭