我有这样的输入。
And I walked 0.69 miles. I had a burger..I took tea...I had a coffee
我的目标是将两个或多个点转换为单个点,然后转换为空格,以便输入根据语法正确结束而变得正确。目标输出是:
And I walked 0.68 miles. I had a burger. I took tea. I had a coffee
我为此做了一个正则表达式:
[\\.\\.]+
我在Regex Tester检查了它,它不会按照我的意愿行事。因为它也包括0.69
和此行.
的结尾,我也不想要。如果有人可以帮助我,我将感激你。
答案 0 :(得分:4)
答案 1 :(得分:1)
此代码应该可以使用
[\.]+[\.]+
这将匹配2个或更多连续时段。然后,您可以用句点和空格替换每个匹配
答案 2 :(得分:1)
您可以使用:
String str = "And I walked 0.69 miles. I had a burger..I took tea...I had a coffee";
String result = str.replaceAll("\\.{2,}", ". ");
<强>输出强>
And I walked 0.68 miles. I had a burger. I took tea. I had a coffee
答案 3 :(得分:1)
你需要拉第一个\。出去匹配,然后1+ \。
\.\.+ or Java string escaped \\.\\.+
[\。\。]将匹配\或。或\或。女巫是对一个角色的冗余检查。
答案 4 :(得分:0)
您可以使用String.replaceAll()
来完成此任务:
myString.replaceAll("\\.[\\.]+", ". ");
您的regex
稍有不妥,也应该是\.[\.]+
。在Java
中,您必须逃离\
,因此它将\\.[\\.]+
...