RegExp - non greedy match

ASP

4 svar · 237 visningar · startad av toha

Medlem sedan dec. 1999707 inlägg
Trådstart#1

Nån som har haft problem med att göra s.k. non-greedy matchningar med RegExp-objektet i VBScript eller JScript?

Ex. Jag har texten:

<p>En liten text.</p><p>Text två.</p>

Och gör en match med följande pattern:

<p>.*</p>

Den hämtar hela strängen från första p-taggen till den SISTA p-slut-taggen. Det kallas för en greedy match. Om man vill göra en s.k. non-greedy match så ska man, allt enligt MSDN-library skriva:

<p>.*?</p>

Men då får man ett felmeddelande. "Unexpected quantifier.".

HILFE BITTE! :)

---Klippt från MSDN library---------

If all you really wanted to match was the opening H1 tag, the following, non-greedy expression matches only <H1>.

/<.*?>/

Medlem sedan dec. 19995 874 inlägg
#2

Kanske såhär?
\<p\>(.*?)\<\/p\>

sedan kan du hämta varje match med antingen $1, $2 (Jscript) eller obj.submatches(0), (1) osv... (VBScript)

Men det är bara en chansning :)

Medlem sedan dec. 1999707 inlägg
#3

Tyvärr det fungerar inte. Men tack ändå.

Medlem sedan dec. 19996 721 inlägg
#4

Antagligen har du en för gammal VBScript-motor. Uppgradera snarast.

Medlem sedan dec. 1999707 inlägg
#5

Jag hade version 5.1 och uppgraderade till 5.6 och det löste sig. **glad**
Tack Emission!

384 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
121 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)