4

2つ以上の期間のグループを1つの期間だけに置き換えようとしています。+演算子が関係しているのではないかと思いますが、それを使って表現しようとすると悲しみしかありませんでした…実験として、3周期だけを1周期に置き換えてみようと思いました。以下のナンセンスは私が思いついたものであり、もちろんそれは機能しません。

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 に答える