2017-12-22 45 views
0

Ich versuche, eine Regex in VBA-Wort zu schreiben, wo zwei Leerzeichen gefolgt von einer Zahl durch ein Leerzeichen gefolgt von einer Zahl ersetzt wird. Dies ist, was ich habe kommen mit, aber es funktioniert nicht:Wie schreibt man diese Regex in VBA Word?

With ActiveDocument.Content.Find 
    .Text = "(\s\s\d)" 
    .Replacement.Text = "(\s\d)" 
    .Forward = True 
    .ClearFormatting 
    .Replacement.ClearFormatting 
    .MatchWildcards = True 

End With 
ActiveDocument.Content.Find.Execute Replace:=wdReplaceAll 

Ich erhalte keine Fehlermeldung, sondern keine Effekte auftreten in meinem doc.

Die offizielle Dokumentation befindet sich hier:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference

#

UPDATE

Ich habe versucht, die erweiterte Suchfunktion verwenden und ersetzen und ich überprüfte die use wild cards und ich habe in

Find: [0-9] 
Replace: [0-9] 

Das sind 2 Leerzeichen zwischen Finden: und [und ein Leerzeichen sein Tween Ersetzen: und [aber es ersetzt die Zeichenfolge: 'hey 8' mit 'hey [0-9]'.

+0

Hinweis: Die Dokumentation, die Sie verknüpft haben, ist die .Net-Dokumentation, die nichts mit VBA zu tun hat. – YowE3K

+0

Die Dokumentation, die Sie verlinkt haben, hat absolut nichts mit VBA zu tun. VBA ist nicht VB.Net oder VB oder VBScript. Nur weil sie alle mit VB beginnen bedeutet das nicht, dass sie gleich sind, mehr als eine ** Katze ** und ein ** Auto ** und eine ** Karotte ** sind alle gleich, weil sie mit ** ca beginnen **. Siehe http://word.mvps.org/FAQs/General/UsingWildcards.htm –

Antwort

1

Sie wildcards verwenden können, um zu Suchen und Ersetzen:

Suche: SpaceSpace([0-9]) (zwei Räume vor ([0-9]))

ersetzen: Space\1 (Single Raum und \1)

Ähnlich Regex, () wird zur Gruppierung in wildcards verwendet. \1 steht für die erste Gruppe in Ihrem Text, die in diesem Fall eine Zahl ist.

Wenn Sie sich über die Anzahl der Leerzeichen, die vor Ihrem Text stehen können, nicht sicher sind, können Sie Space{1,} verwenden, um eine beliebige Zahl von Spaces zu finden.

+0

Danke, das schätze ich sehr. –