Ich muss das hier umstellen:
zz zz zz zzzzYzzzzXzzzz zz zzzzzz zzzz zzYzz
das mögen:
1Y1X1Y1
Am besten auf einen Schlag.
zz\s*zz
ist gut, aber Sie müssen es mehrmals ausführen, um das zu erreichen, was ich brauche.
Paar ist die kleinste Einheit von z.
zz werden durch eine beliebige Anzahl und Kombination von Leerzeichen (Tabulatoren, Leerzeichen) voneinander getrennt.
X und Y können beliebige Zeichenfolgen außer z und Leerzeichen sein.
Leerzeichen sind immer durch zz umrandet (und befinden sich innerhalb der Y- und X-Zeichenfolgen).
Am besten wäre es, wenn dies in VBA-kompatibler Syntax wäre.
Antwort1
Sie können dies in GNU sed tun mit
sed -r 's/[z ]+/1/g'
Wenn dies nicht das ist, was Sie möchten, bearbeiten Sie Ihre Frage, um klarer zu beschreiben, was Sie möchten.
Antwort2
Der VBA-Code würde ungefähr wie folgt aussehen:
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
Hier ist das Ergebnis dieses Beispiels, wie es in Word ausgeführt wird: