正则表达式(后向回顾?)

正则表达式(后向回顾?)

我需要转动这个:

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 中运行的结果:

在此处输入图片描述

相关内容