Tipp 0426 Text filtern mit Regular Expressions
Autor/Einsender:
Datum:
  Frank Grimm
27.11.2004
Entwicklungsumgebung:   VB 6
Immer wieder ist es für die Verarbeitung von Daten wichtig numerische Werte aus Strings herauszufiltern. Am einfachsten geht das mit Hilfe von Regular Expressions (RegExp). Um das RepExp-Objekt nutzen zu können, muss lediglich ein Verweis auf die Bibliothek Microsoft VBScript Regular Expressions in das Projekt eingebunden werden.
Dieser Tipp verdeutlicht die Replace-Methode des RepExp-Objekts, die sich ideal zum Filtern von Strings oder z. B. zum Ersetzen von Text mit Wildcards (was mit der VB-eigenen Replace-Funktion nicht möglich ist) eignet.
Wie man mit dem RegExp-Objekt prüft, ob bestimmte Bedingungen in einem String erfüllt sind, zeigt z. B. unser Tipp E-Mail-Adressen auf Gültigkeit prüfen.
Code im Codebereich des Moduls
 
Option Explicit

Public Function GetRegExpString(ByVal vsStingIn As String, _
      ByVal vsPattern As String) As String

  Dim objRegExp As RegExp

  Set objRegExp = New RegExp

  objRegExp.IgnoreCase = True
  objRegExp.Global = True
  objRegExp.MultiLine = True

  objRegExp.Pattern = vsPattern
  GetRegExpString = objRegExp.Replace(vsStingIn, "")

  Set objRegExp = Nothing
End Function
 
Beispiel-Aufruf
 
Dim strText    As String
Dim strPattern As String
Dim strRetStr  As String

strText = "Text mit Zahlen (12-34) gemischt, der " & _
          "gefiltert werden soll 100"

strPattern = "[^\d\s$]"
strRetStr = GetRegExpString(strText, strPattern)
MsgBox strRetStr
 
'Pattern'-Beispiele
 
'Der Begriff 'white space' (zu Deutsch: 'Weiße Zeichen')
'umfasst in diesem Zusammenhang sowohl Leerzeichen,
'Tabulatoren sowie Zeilenvorschübe.
 
'Alle Zahlen ohne 'white spaces'
'(ohne Zeilenvorschübe, Leerzeichen, Tabulatoren)
"[^\d$]"

'Alle Zahlen mit 'white spaces'
'(inkl. Zeilenvorschübe, Leerzeichen, Tabulatoren)
"[^\d\s$]"

'Alle Zahlen ohne Leerzeichen, mit Zeilenvorschub
"[^\d\f\n\r\v$]"

'Text ohne Zahlen, mit 'white spaces'
"[\d$]"

'Text ohne Zahlen, ohne 'white spaces'
"[\d\s$]"

'Text ohne Zahlen, mit Leerzeichen, ohne Zeilenvorschub
"[\d\f\n\r\v$]"

'Text inkl. Zahlen ohne 'white spaces'
"[^\S$]"

'Text inkl. Zahlen ohne Zeilenvorschub
"[\f\n\r\v$]"
 
Eine Sammlung vieler weiterer Patterns für die verschiedensten Aufgaben finden Sie u. a. auf RegExLib.com.
Hinweis für VBA-Anwender
Die im Download befindliche *.bas-Datei kann für die Verwendung in einem (Office-)Programm im VB-Editor des entsprechenden Programms importiert werden, ein Import der *.frm-Datei ist nicht möglich.
Hinweis
Um diesen Tipp ausführen zu können, muss ein Verweis auf die Bibliothek Microsoft VBScript Regular Expressions in das VB-/VBA-Projekt eingebunden werden.

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (5,1 kB) Downloads bisher: [ 836 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 19. Juni 2011