我需要转动这个:
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 中运行的结果: