Avatar billede idiotbarn Nybegynder
18. oktober 2003 - 12:28 Der er 3 kommentarer og
1 løsning

Find antal forekomster af ord

Hvis jeg skal ha fundet ud af hvor mange gange et ord forekommer i en tekst, hvordan kan jeg så gøre det? hvis jeg fx har teksten: "manden er en stor person" og vil finde ud af hvormange gange ordet "er" forekommer, skal den komme ud med: 1
Nogen foreslag?
Avatar billede eagleeye Praktikant
18. oktober 2003 - 13:19 #1
Du kan bruge regular expresstion:


str =  "manden er en stor person"

ord = "er"
Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = true
regEx.Pattern = "(^|[^a-zæøå\d])" & ord & "([^a-zæøå\d]|$)"
antal = 0
Set Matches = regEx.Execute(str)
For Each Match in Matches
  antal = antal + 1
Next
Set regEx = Nothing

Response.Write antal
Avatar billede idiotbarn Nybegynder
18. oktober 2003 - 13:29 #2
ok...fedt. Forstår ikke lige:
regEx.Pattern = "(^|[^a-zæøå\d])" & ord & "([^a-zæøå\d]|$)"
Hvad sker der der?
Avatar billede erikjacobsen Ekspert
18. oktober 2003 - 13:40 #3
Eller den her:

<%

  strng="Der er for langt mellem mælk og og, og og og smør"

  Dim regEx, Match, Matches  ' Create variable.
  Set regEx = New RegExp  ' Create a regular expression.
  regEx.Pattern = "[\wæøåÆØÅ]+"    ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  Set Matches = regEx.Execute(strng)  ' Execute search.
  Set dict = Server.CreateObject("Scripting.Dictionary")
  For Each Match in Matches  ' Iterate Matches collection.
    m = "" & Match
    dict(m) = dict(m)+1
    response.write Match & " "
  Next
  response.write "<br>"
  response.write "Og forekommer " & dict("og") & " gange<br>"
  response.write "langt forekommer " & dict("langt") & " gange<br>"   

  for each word in dict
    response.write word & " occurs " & dict(word) & " times<br>"
  next
%>
Avatar billede eagleeye Praktikant
18. oktober 2003 - 13:55 #4
Det er et pattern den søger efter hele ord:

"(^|[^a-zæøå\d])" & ord & "([^a-zæøå\d]|$)"

^  betyder når den står ført start p åstrengen så den an finde ordet hvis det står først i en streng.

|  betyder eller

^a-zæøå\d  betyder Ikke match bogstavder og tal lige før søge ordet og lige efter søge ordet så den ikke finder er i person.

$  betyder slut på strengen.


du kan se meget mere omkring det her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vspropattern.asp
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