2016-12-12 1 views
1

Ich verwende ein VBA-Skript, um Daten von eingehenden E-Mails zu abstrahieren und zu formatieren.Verwenden von rmvString zum Löschen von Text und einer Nummer im Outlook-Skript

Ich versuche gerade, einen Weg zu entwickeln, um Text und eine 1- bis 5-stellige Zahl nach dem Text zu entfernen.

Der Text ist immer das Wort "Standard" und die Nummer kann von 1 bis 99999 (wie "Standard 23453" oder "Standard 9") sein. Die Nummer könnte auch nicht existieren (nur das Wort "default").

Ich verwende derzeit die Zeichenfolge:

rmvString = Replace(rmvString, "default ", "")

und entfernt das Wort Standard. Aber jetzt möchte ich die Nummer entfernen, die normalerweise dem Wort default folgt. Beispiele.


Eingang E-Mail: Standard 2332 Ergänzungstext kommt hier.

Ausgabe: zusätzlicher Text kommt hier.


Eine weitere mögliche Eingabe (keine Zahl): Standard Ergänzungstext kommt hier.

Ausgabe: zusätzlicher Text kommt hier.


Vielen Dank.

Antwort

1

Click Werkzeuge, Referenzen und fügen "Microsoft VBScript Regular Expressions 5.5" dann können Sie eine RegExp Suche & ersetzen verwenden:

rmvString = "Hello default A" & vbCrLf & _ 
      "Hello DEFAULT 12 B" & vbCrLf & _ 
      "Hello default 123456 C" & vbCrLf 

MsgBox rmvString 

With New RegExp 
    .Global = True 
    .MultiLine = True 
    .IgnoreCase = True 
    .Pattern = "(default\s\d*\s*)" 'finds the string, a space, any digits, any space 

    rmvString = .Replace(rmvString, "") 
End With 

MsgBox rmvString 
Verwandte Themen