Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: reguläre Ausdrücke

reguläre Ausdrücke
24.02.2021 18:52:11
yummi
Hallo Zusammen,
ich muss viele pdf Dateien nach bestimmten Suchmustern durchsuchen und wollte daher Reguläre Ausdrücke verwenden. Ich möchte jetzt verstehen wie ich an die gesuchten Daten gelange, dass ist mir noch nicht klar, vielleicht hängt es auch noch am falschen regulären Ausdruck. Ich hoffe ihr könnt mir helfen.
Ich möchte nach folgendem suchen Lastenheftversion gefolgt von ein paar Leerzeichen gefolgt von einer Versionsnummer, die aus Zahlen und Punkten bestehen kann, vielleicht sogar Buchstaben.
ich habe mir folgenden Ausdruck gedacht: Lastenheftversion *.+?(\r|\n)
Als Ergbnis möchte ich nun gerne den Teil haben der nachdem Lastenheftversion und vor dem Zeilenende kommt.
In strTXT seht mein gesamter Text
in strPatternVersion der oben gedachte Ausdruck
matches.count liefert mir ein Treffer und in matches steht auch die ganze Zeile, aber halt nciht nur das gesuchte.

regex.Pattern = wksconf.Range(strPatternVersion).Value
Set matches = regex.Execute(strTXT)
If matches.Count > 0 Then
'hier würde ich gerne die Versionsnummer ausgeben
End If

In submatches steht nix drin. Kann mir bitte jemand mal erklären was ich da machen muss
Oder wie der richtige reguläre Ausdruck lauten muss, damit ich das Ergebnis als Lösung bekomme und nicht die ganze Zeile.
Vielen Dank
yummi
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: reguläre Ausdrücke
24.02.2021 19:23:05
ChrisL
Hi Yummi
Ich denke du benötigst einen "positive lookbehind"
http://www.regular-expressions.info/lookaround.html
(?
Den Space habe ich in Kombi mit * (optional) auf die Schnelle nicht weggebracht. Mit + (1 oder mehr) geht es.
Aber das Ergebnis würde ich sowieso einfach mit Trim() glätten (hinten könnte ja auch noch ein Leerschlag stehen).
cu
Chris
Anzeige
AW: reguläre Ausdrücke
24.02.2021 19:38:59
yummi
Hallo Chris,
vielen Dank für deine Hilfe, aber mit dem Such pattern bekomme ich einen Laufzeitfehler 5017
Gruß
yummi
AW: reguläre Ausdrücke
25.02.2021 08:47:41
ChrisL
Hi Yummi
Du hast recht. Ich habe den Pattern leider nur im Webbrowser Testtool geprüft.
Hiernach kennt VB-Regex leider keinen Lookaround.
http://www.vbaexpress.com/forum/archive/index.php/t-6254.html
Ich denke man muss wohl oder übel Replace verwenden.
Sub t()
MsgBox myRegEx("Ein Test Lastenheftversion x.1a" & Chr(10) _
& "bla", "Lastenheftversion *.+?(\r|\n)", "Lastenheftversion")
End Sub

Public Function myRegEx(TextInput As String, regexPattern As String, Optional strReplace As  _
String) As String
Dim regEx As Object: Set regEx = CreateObject("VBscript.regexp")
Dim matches
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = regexPattern
End With
If regEx.test(TextInput) Then
Set matches = regEx.Execute(TextInput)
myRegEx = Trim(Replace(matches(0).Value, strReplace, ""))
End If
End Function

cu
Chris
Anzeige
AW: reguläre Ausdrücke
25.02.2021 10:36:26
yummi
Vielen Dank, so geht es für diesen Fall. Bei den weiteren Pattern suche ich ja dann nach dem gesamten Ausdruck
Danke
yummi
gelöst
25.02.2021 10:38:19
yummi
gelöst
AW: gelöst
25.02.2021 10:39:50
ChrisL
super... Danke für die Rückmeldung
cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige