Frage von hanfmannlein, 44

VBS Regular Expressions prüfen?

Hallo,

ich möchte in VBS (muss VBS sein) auf einen String Prüfen, der sehr lang ist und mehrere Zeilenumbruche beinhaltet. Da in jeder Zeile das genau das gleiche steht, wollte ich das mit Regular Expressions prüfen.

Aber mit einem einfachen

    If testregexpr.Pattern = Text Then

lässt sich das nicht überprüfen.

Hat jemand eine Idee ? Vorschläge, die ohne Regular Expressions auskommen sind auch willkommen!

Vielen Dank!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von ETechnikerfx, 28

Für mich erschließt sich nicht was du prüfen möchtest. Ist "Text" eine Variable? Ein Typ?

Kommentar von hanfmannlein ,

Sorry,  Text ist eine Variable in der der String enthalten ist der überprüft werden soll.
Habe auch schon folgendes probiert:

If testregexpr.Test(Text) Then
Kommentar von ETechnikerfx ,

Schau dir mal den Link genauer an, hier wird auf die Überprüfung eines Strings mittels RegEx eingegangen:

http://www.aspheute.com/artikel/20000829.htm

Kommentar von hanfmannlein ,

Hab es getestet, auf der Seite steht auch die Syntax, die ich verwendet habe, aber ich bekomme immer einen Syntaxfehler, sobald ich einen String oder eine Variable in die Klammern setze.

Kommentar von ETechnikerfx ,

Zunächst musst du deinen Regulären Ausdruck parametrieren zum Beispiel wie auf der Seite:

Set objRegAusdr = New RegExp
strPattern = "^.+@.+\...+$"
objRegAusdr.Pattern = strPattern
objRegAusdr.IgnoreCase = True

Hiernach führst du die Prüfung deines Textes wiefolgt aus:

Set Matches = objRegAusdr.Execute(Text)	
Kommentar von hanfmannlein ,

Mittlerweile ist das Problem gelöst.

Ist das Selbe, das du geschrieben hast.

Allerdings verstehe ich nicht warum ich  nicht direkt auf .Test prüfen kann.

Aber das stört mich nicht weiter, da ich es nur zum Testen benutzt habe.

Vielen Dank für deine Mühe und kompetente Hilfe!

Set regexpr = New RegExp
regexpr.Pattern = "^'' \r$"
regexpr.Global = True
regexpr.multiline = True

Set Anzahl = regexpr.Execute(elm.innertext)
treffer = regexpr.Test(elm.innertext)

If elm.id = Anzahl.Count = 6 Then ...
Kommentar von ETechnikerfx ,

Vermutlich weil das Objekt "RegEx" von Hause aus vermutlich keinen Vergleich auf "NULL" zulässt. Der Patternparameter ist ja essenziell für dieses Objekt. Ist dieser nicht parametriert, macht dieses Objekt keinen Sinn.

Kommentar von hanfmannlein ,

Ja, das ist mir klar.
Ich meinte eigentlich:

regexpr.Test(Text)

Ohne Zuweisung einer Variable gab das einen Syntaxfehler bei mir


Keine passende Antwort gefunden?

Fragen Sie die Community