正規表示式(向後查找?)

正規表示式(向後查找?)

我需要把這個:

zz  zz zz   zzzzYzzzzXzzzz zz     zzzzzz                zzzz zzYzz

進入這個:

1Y1X1Y1

最好是一口氣。

zz\s*zz很好,但你需要運行幾次才能達到我的需要。

Pair是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 中運行的結果:

在此輸入影像描述

相關內容