正規表現 (後読み?)

正規表現 (後読み?)

これを回す必要があります:

zz  zz zz   zzzzYzzzzXzzzz zz     zzzzzz                zzzz zzYzz

次のようにします:

1Y1X1Y1

できれば一挙に。

zz\s*zz良いですが、必要な結果を得るには数回実行する必要があります。

ペアはzの最小単位です。

zz は、任意の数および組み合わせの空白 (タブ、スペース) によって区切られます。

X と Y には、z と空白を除く任意の文字列を指定できます。

空白は常に zz で囲まれます (Y および X 文字列内にあります)。

これが VBA 互換の構文であれば最適です。

答え1

GNU sedでは次のように実行できます。

sed -r 's/[z ]+/1/g'

それがご希望の内容でない場合は、質問を編集して、ご希望の内容をより明確に説明してください。

答え2

VBA コードは次のコードのようになります。

Sub test()
MsgBox ReplaceIt("zz  zz zz   zzzzYzzzzXzzzz zz     zzzzzz                zzzz zzYzz")
End Sub

Function ReplaceIt(strIn As String) As String
Dim RE As Object
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "[z ]+"
RE.Global = True
ReplaceIt = RE.Replace(strIn, "1")
End Function

この例を Word で実行した結果は次のとおりです。

ここに画像の説明を入力してください

関連情報