用一个句点替换字符串中的多个句点

时间:2012-08-18 23:39:25

标签: regex autohotkey

我试图用一个句号替换两个或更多个句点的任何一组。 我怀疑是+操作员参与其中,但是我只有悲伤试图用这个来表达... 所以我认为作为一个实验,我会尝试用一个周期替换3个周期。 下面的废话是我提出的,当然它不起作用。

OutNameNoExt:= RegExReplace(OutNameNoExt,"\.\.\." , ".")

甚至更好,我可以改变现有的表达方式

OutNameNoExt:= RegExReplace(OutNameNoExt,“[^ a-zA-Z0 = 9_-]”,“。”)

这样它连续不会产生多个句号?

帮助?

2 个答案:

答案 0 :(得分:5)

OutNameNoExt:= RegExReplace(OutNameNoExt,"\.{2,}" , ".")

或者,如果不允许使用{n,m}(即,至少n但不超过m次)语法,则可以使用以下内容:

OutNameNoExt:= RegExReplace(OutNameNoExt,"\.\.+" , ".")

或者,您也可以将现有表达式更改为以下内容,以便它不会在一行中生成多个句点:

OutNameNoExt:= RegExReplace(OutNameNoExt,"[^a-zA-Z0=9_-]+" , ".")

答案 1 :(得分:2)

对于Java,以下正则表达式正在尝试用单点替换多个点:

String str = "-.-..-...-.-.--..-k....k...k..k.k-.-";
str.replaceAll("\\.\\.+", ".")

输出:

-.-.-.-.-.--.-k.k.k.k.k-.-