Ich möchte folgenden String matchen:
Code: Alles auswählen
<a>test</a><a>test2</a>
Code: Alles auswählen
<(\w+)>(.*)</\1>
test</a><a>test2
ich möchte aber:
test und test2
Hat jemand eine Idee?
Code: Alles auswählen
<a>test</a><a>test2</a>
Code: Alles auswählen
<(\w+)>(.*)</\1>
Code: Alles auswählen
<(\w+)>([^<>]*)</\1>
Code: Alles auswählen
<(\w+)[^>]*>([^<>]*)</\1>
Code: Alles auswählen
If CreateRegularExpression(0, "<(\w+)[^>]*>([^<>]*)</\1>")
Dim Result$(0)
NbFound = ExtractRegularExpression(0, "<a href='hier'>Laber</a><a>Laber2</a>", Result$())
For k = 0 To NbFound-1
Debug Result$(k)
Next
Else
Debug RegularExpressionError()
EndIf
und bei Pattern dann den "echten":<a href='hier'>Laber</a><a>Laber2</a>
Code: Alles auswählen
~<(\w+)[^>]*>([^<>]*)</\1>~
1. Treffer
String : <a href='hier'>Laber</a>
- Teil 1 : a
- Teil 2 : Laber
2. Treffer
String : <a>Laber2</a>
- Teil 1 : a
- Teil 2 : Laber2
STARGATE hat doch gesagt, RegExps nehmen "immer das größere zuerst", der Fachkundige nennt das auch "Gieriges Suchmuster" (von englisch "greedy pattern").gnasen hat geschrieben:Ich möchte folgenden String matchen:ich möchte aber:Code: Alles auswählen
<a>test</a><a>test2</a>
test und test2
Code: Alles auswählen
(?U)\<(a|A)(|\s.+)\>(.*)\</<(a|A)>
----
|___________ Der Textinhalt des Links
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End