Avatar billede jsbananen Nybegynder
03. februar 2003 - 14:54 Der er 2 kommentarer

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))

%>
Avatar billede jsbananen Nybegynder
03. februar 2003 - 14:57 #1
For lige at skære lidt mere ud...

Jeg får kun EET match...: "The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs. The quick brown fox jumps over lazy dogs."

Men vil have 3..:
"The quick brown fox jumps over lazy dogs."
"The quick brown fox jumps over lazy dogs."
"The quick brown fox jumps over lazy dogs."
Avatar billede themepark Nybegynder
27. september 2003 - 21:02 #2
Nu er det jo TEMMELIG længe siden du skrev dette indlæg, men har du egentlig sidenhen fundet svaret?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester