it-swarm.com.de

Gibt es eine Möglichkeit, in einem MS Word-Dokument nach einem Muster zu suchen?

Gibt es eine Möglichkeit, Muster in einem MS Word-Dokument nachzuschlagen, anstatt genau übereinzustimmen?

Ich habe ein Dokument, in dem alle Dezimalstellen als / anstelle von . geschrieben wurden. Beispiel: 1.02 wurde als 1/02 geschrieben, da in der persischen Typografie / anstelle von . als Dezimalpunkt verwendet wird.

Da / nicht nur für Dezimalstellen verwendet wird und auch andere Anwendungen hat, z. B. Brüche, Prozentsätze usw., gibt es eine Möglichkeit, ein Muster wie N/M in einem Word-Dokument zu finden, wobei N eine Dezimalstelle bezeichnet und M eine andere anzeigt Dezimalzahl?

28
codezombie

wie 'N/M' in einem Word-Dokument, wobei N eine Dezimalzahl bedeutet und M auch eine andere Dezimalzahl anzeigt

Nur für eine Suche können Sie ^#/^# als Ihren Suchparameter verwenden. Unter den Optionen more und find Special gibt es einige andere Optionen das kann hilfreich sein.

Nb: ^# ist eine Dezimalstelle. Wenn Sie also speziell nach x/yy suchen, ist es ^#/^#^# usw.

ersetzen,

Dies ist eine bessere Option, führen Sie eine Suche mit ([0-9])/([0-9]) durch und ersetzen Sie sie durch \1.\2 und aktivieren Sie "Platzhalter verwenden".

12
Charm_quark

Wort

Verwenden Sie die Implementierung regulärer Ausdrücke von Microsoft

Drücken Sie CTRL+H "Klicke auf Mehr " Aktiviere Verwenden Sie Platzhalter

  • Finde was: ([0-9]{1,2})/([0-9]{2})
  • Ersetzen durch: \1.\2

enter image description hereenter image description here

Das sieht nach einem verrückten Suchmuster aus, also lasst es uns untersuchen:

  • [0-9] steht für einen einzelnen numerischen Wert (0,1,2,3,4,5,6,7,8 und 9)
  • {1,2} wird zum Zählen von Vorkommen des vorherigen Zeichens oder Ausdrucks verwendet. In unserem Fall bedeutet dies: Suche nur nach einer oder zwei Ziffern .

    Achtung: Wenn Sie ein deutsches Wort verwenden, müssen Sie ; als Trennzeichen anstelle von , verwenden

  • / hat keine besondere Bedeutung. Es wird buchstäblich ein Schrägstrich gesucht
  • () Die runden Klammern sind wichtig. Sie unterteilen das Muster in logische Sequenzen, damit wir später in unserem Ersetzungsmuster \1, \2...\n verwenden können. So erhalten wir Werte

Lesen Sie mehr im Abschnitt Die Ausdrücke, Stück für Stück im Microsoft-Support-Artikel oder auf Graham Mayors Word-Site


VBA (bessere Lösung)

Ich empfehle Ihnen, eine VBA-Methode zu verwenden, die dem Standard anderer RegEx-Engines besser entspricht. Sie sind besser dokumentiert und mehr Leute können dir helfen.

Dieses Makro fordert ein RegEx-Muster auf, das das gesamte Dokument durchsucht und durch die angegebene Zeichenfolge ersetzt.

Drücken Sie ALT+F11 um den VBA-Editor zu öffnen. Fügen Sie den Code an einer beliebigen Stelle ein und führen Sie ihn mit aus F5

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        

End Sub
  • Finde was: (?!\d)/(?=\d)
  • Ersetzen durch: .

enter image description hereenter image description here

35
nixda