![]() |
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
|
|
|
|
|
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
|
|
|
|
|
'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.
|
|
|
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.
|
|
|
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: [ 910 ]
|
|
|