4

正規表現を使用してスラッグを作成するために、文字列内のスペースをアンダースコアに置き換えようとしています。スペースが1つある場合は正常に機能します。ただし、2 つの連続したスペースまたはスペースの後にアンダースコアが続き、その逆の場合' _' OR '_ 'は、 として置き換えられ__ます。どうすればこれを克服できますか?つまり、 double または triple の代わりに単一のアンダースコアが必要です。どんな助けでも大歓迎です。

置き換えるための私のコードはこれに似ています。

rereplace(lCase('this is a sample _string'),'[ ]','_','all')
4

1 に答える 1

10

改訂された要件に基づいて、これはうまくいくようです:

original = "string with_mix _ of  spaces__and_ _underscores__  __to_ _test  with";
updated = reReplace(original, "[ _]+", "_", "all");
writeOutput(updated);

結果:

string_with_mix_of_spaces_and_underscores_to_test_with

それは仕様ですか?

于 2013-11-09T11:34:50.060 に答える