Regular Expressions - stoppe hver match ved næste forekomst
Hej!Jeg har en streng, jeg skal have opdelt med regular expressions...:
"The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs."
Jeg vil gerne ende ud med et match for hver sætning "The[blablabla]dogs." Derfor laver jeg et regular expression..:
"The[\w|\W]*dogs."
Men det starter ved det første "The" og stopper først ved det sidste "dogs.", ikke ved det første, som jeg forventer. Derfor får jeg kun EET langt match.
Hvordan får jeg den til at stoppe et match ved første/næste forekomst, ikke den sidste?
Eksemplet her er naturligvis forsimplet, så det er det principielle svar, jeg er interesseret i.
Her er koden jeg anvender til at teste med...:
<%
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' Create variable.
Set regEx = New RegExp ' Create a regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Set Matches = regEx.Execute(strng) ' Execute search.
For Each Match in Matches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr & Match.Value & "'.<br>"
Next
RegExpTest = RetStr
End Function
strText = "The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs."
Response.write(RegExpTest("The[\w|\W]*dogs.", strText))
%>