4

我试图用一个周期替换任何两个或多个周期的组。我怀疑涉及 + 运算符,但我只有悲伤试图使用它来表达......所以我想作为一个实验,我会尝试用一个句点替换 3 个句点。下面的废话是我想出来的,当然不行。

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

或者更好的是,我可以改变这个现有的表达吗

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

这样它就不会连续产生超过一个时期?

帮助?

4

2 回答 2

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

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

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

或者,您也可以将现有表达式更改为以下表达式,以便它不会连续产生多个句点:

OutNameNoExt:= RegExReplace(OutNameNoExt,"[^a-zA-Z0=9_-]+" , ".")
于 2012-08-18T23:46:54.273 回答
2

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

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

输出:

-.-.-.-.-.--.-k.k.k.k.k-.-
于 2015-10-17T07:32:55.887 回答