/ 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
Regular Expressions
Fra : Brian Ipsen


Dato : 17-10-01 21:47

Hej!

Jeg har en RegEx der ser sådan her ud:

#define REGEX "^Received:
from.*\\(([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})\\)"

Hvorfor matcher den ikke med strengen:

Received: from cmintsexuni04.cibcmortgages.com ([207.245.249.4])

På grund af noget med de firkantede paranteser i min input-streng ?

Det er et håbløst forsøg på at få compilet qrblcheck til at sortere
SPAM/UCE fra....

/Brian


 
 
Claus Rasmussen (17-10-2001)
Kommentar
Fra : Claus Rasmussen


Dato : 17-10-01 22:32

Brian Ipsen wrote:

> Jeg har en RegEx der ser sådan her ud:
>
> #define REGEX "^Received:
> from.*\\(([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})\\)"
>
> Hvorfor matcher den ikke med strengen:
>
> Received: from cmintsexuni04.cibcmortgages.com ([207.245.249.4])

Du bruger escape ("\") forkert. Tegnene "()[]." har speciel betydning
med mindre de bliver escapet. Dvs. "(abc)" betyder "abc" mens "\(abc\)"
betyder "(abc)".

Prøv i stedet:

from.*\(\[([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\]\)

Hvis du kan bruge perl re's er flg. noget simplere:

from.*\(\[(\d+\.\d+\.\d+\.\d+)\]\)

Eller:

from.*\(\[([0-9\.]+)\]\)

Eller bare:

from.*\(\[(.*)\]\)

Der er ikke så megen grund til at tælle ({1,3}) antal cifre i hver
gruppe i ip-adressen medmindre der er risiko for, at fange noget,
der ikke er en ip-adresse.

-Claus


Brian Ipsen (17-10-2001)
Kommentar
Fra : Brian Ipsen


Dato : 17-10-01 23:08

On Wed, 17 Oct 2001 22:47:24 +0200, Brian Ipsen <Spammers@blow.me>
wrote:

> Jeg har en RegEx der ser sådan her ud:
>
>#define REGEX "^Received:
>from.*\\(([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})\\)"
>
>Hvorfor matcher den ikke med strengen:
>
>Received: from cmintsexuni04.cibcmortgages.com ([207.245.249.4])
>
>På grund af noget med de firkantede paranteser i min input-streng ?

Fandt delvis årsag/løsning - min streng skal afsluttes med et
mellemrum for at den kan finde ud af det... Næste problem er, at det
match jeg får tilbage ikke er selve IP adressen, men hele stykket fra
"Received... " til "...4])" - findes der så en nem måde at hive IP
adressen ud på ??

/Brian

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

Månedens bedste
Årets bedste
Sidste års bedste