/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
regexp: match any char except this word
Fra : Leif Neland


Dato : 11-01-07 09:40

Jeg vil gerne (i perl) matche alle tegn, bortset fra et bestemt ord

while ($content =~ m'<h2>(.*)</h2>'g) {$ord=$1; gør_noget_med($ord)}

men ikke hvis ord er = "foo"

Kan det pakkes ind i regexp'en, eller må jeg nøjes med en ekstra if-sætning?

Leif



 
 
Peter Makholm (11-01-2007)
Kommentar
Fra : Peter Makholm


Dato : 11-01-07 09:54

"Leif Neland" <leif@neland.dk> writes:

> Jeg vil gerne (i perl) matche alle tegn, bortset fra et bestemt ord
>
> while ($content =~ m'<h2>(.*)</h2>'g) {$ord=$1; gør_noget_med($ord)}
>
> men ikke hvis ord er = "foo"
>
> Kan det pakkes ind i regexp'en, eller må jeg nøjes med en ekstra if-sætning?

Jeg vil ikek afvise at det kan gøres med noget negative look-around,
men jeg tro hverken at det bliver pænt eller effektivt. Jeg tror i
hvert fald det bliver langt mere vedligeholdelsesegnet ved bare at
lave en 'next if $ord eq "foo"' som det første i din løkke.

//Makholm

Regnar Bang Lyngsø (12-01-2007)
Kommentar
Fra : Regnar Bang Lyngsø


Dato : 12-01-07 19:38

Leif Neland wrote:

> while ($content =~ m'<h2>(.*)</h2>'g) {$ord=$1; gør_noget_med($ord)}

Jeg er enig med Peter, men måske

while ($content =~ m'<h2>(?!ord</h2>)(.*)</h2>'g) {
   $ord = $1;
   gør_noget_med($ord)
}

ville virke?

Knus
Regnar

Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste