Avatar billede cmelchior Nybegynder
11. april 2005 - 21:48 Der er 4 kommentarer og
1 løsning

Find streng flere gange mellem HTML tags

Hej

Jeg har en tilfældig htmlkode hvor jeg skal have hentet alle forekomster af en streng ud - MEN strengen kan forkomme flere gange og må kun hentes ud hvis den ligger mellem > og < og altså ikke "inde" i tag'et.

Jeg har selv fundet frem til følgende:

/(>[^<]*?)(\blorem\b)([^>]*?<)/i

Men den finder kun den første forkomst mellem tag'ene og altså ikke hvis det forkommer flere gange.

Eks:
<div><p>Lorem ipsum dolor sit lorem amet <img src="#" alt="Lorem lorem loreM" /></p><p>Lorem:Lorem,Lorem "Lorem"</p></div>

Her må den ikke finde de 3 Lorem'er inde i img-tagget men ellers alle de andre.
Avatar billede cmelchior Nybegynder
11. april 2005 - 21:49 #1
Er der nogle som har en god ide, eller lige har løsningen liggende?

mvh.
Christian
Avatar billede roenving Novice
11. april 2005 - 22:03 #2
Sæt en global på !-)

/(>[^<]*?)(\blorem\b)([^>]*?<)/ig

-- men hvis den også kan forekomme flere gange i den samme streng mellem tags, hrm ...
Avatar billede yellow Nybegynder
12. april 2005 - 01:16 #3
Jeg gætter på at du skal bruge funktionen til at highlighte enkelte ord (f.eks. en søgestreng)...korrekt?

Jeg tror det bliver svært at klare det i een regular expression - specielt pga. mulighed for forekomst at ordet mere end een gang mellem hver tag.

Der er et fint eksempel på hvordan det kan løses med 2 regexps og lidt ekstra kodning her: http://www.notestips.com/80256B3A007F2692/1/NAMO5RNV2S#16 (eksempel 3 på siden).
Avatar billede cmelchior Nybegynder
12. april 2005 - 16:59 #4
Ja..jeg skal bruge den til en ordbog, hvor der bliver knyttet en popup til hvert ord.
Men inspireret af dit forslag lavede jeg det i to omgange istedet:

1) /(>)([^>]+?)(<)/i
2) /(\blorem\b)/i

Det erstatter godt nok også ord imellem SCRIPT, TEXTAREA og STYLE tags, men det kan jeg leve med indtil videre...

Yellow -> smid et svar og du for point..
Avatar billede yellow Nybegynder
13. april 2005 - 10:30 #5
svar
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