|
| Mellemrum i regular expressions i Agent Fra : Allan Olesen |
Dato : 27-04-01 09:18 |
|
Jeg prøvede at søge en gruppe igennem efter TDC-telefonnumre. Jeg
brugte som søgeudtryk en regular expression: {80 ?80 ?80}.
Den burde efter min mening finde alle indlæg, som indeholdt en af
disse strenge:
'808080'
'80 8080'
'8080 80'
'80 80 80'
Men den finder alt, som bare indeholder strengen '80'. Samme resultat
med {80\ ?80\ ?80}
Så prøvede jeg i stedet {80.?80.?80}, og den virkede da også, men den
ville jo også f.eks. have fundet '8080a80'.
Så, derfor:
Er der nogen, der ved hvordan man angiver mellemrum i regular
expressions i Agent?
--
Allan Olesen, Lunderskov
Hvorfor er det kun Nej-sigerne, der må køre 55 i byen?
| |
Peter Alfredsen (27-04-2001)
| Kommentar Fra : Peter Alfredsen |
Dato : 27-04-01 21:20 |
|
On Fri, 27 Apr 2001 10:18:02 +0200, Allan Olesen
<aolesen@post3.tele.dk> wrote:
[SNIP]
>Er der nogen, der ved hvordan man angiver mellemrum i regular
>expressions i Agent?
Jeg ved hvordan man gør det *generelt* i regular expressions. \s
burde kunne gøre det. Altså <backslash><s>.
--
Peter Alfredsen (peteralf@fabel.dk)
Join USENET archivers: http://sunsite.dk/mailman/listinfo/usenet_archivers
And help keep USENET archives in the public domain.
| |
Allan Olesen (27-04-2001)
| Kommentar Fra : Allan Olesen |
Dato : 27-04-01 22:55 |
|
Peter Alfredsen <peteralf@fabel.dk> wrote:
>Jeg ved hvordan man gør det *generelt* i regular expressions. \s
>burde kunne gøre det. Altså <backslash><s>.
Nja, nu kender jeg mest regexps fra Perl, og der omfatter \s alle
typer whitespace, mens almindelige mellemrum kan matches med ' '
alene.
Men ok - dit forslag ville være tæt nok på. I Agent giver det dog
samme resultat som ' ' og '\ ', så jeg er efterhånden mest tilbøjelig
til at påstå, at programmet har en bug (eftersom det hævder at bruge
UNIX regexps).
--
Allan Olesen, Lunderskov
Hvorfor er det kun Nej-sigerne, der må køre 55 i byen?
| |
Frans Jensen (28-04-2001)
| Kommentar Fra : Frans Jensen |
Dato : 28-04-01 01:25 |
|
On Fri, 27 Apr 2001 23:54:43 +0200, Allan Olesen
<aolesen@post3.tele.dk> wrote:
>Peter Alfredsen <peteralf@fabel.dk> wrote:
>
>>Jeg ved hvordan man gør det *generelt* i regular expressions. \s
>>burde kunne gøre det. Altså <backslash><s>.
>
>Nja, nu kender jeg mest regexps fra Perl, og der omfatter \s alle
>typer whitespace, mens almindelige mellemrum kan matches med ' '
>alene.
måske kan du finde nogle hints her:
Filters - explanations, examples, and utilities:
"Classic" word based:
http://home.att.net/~JLBradley/CLASSIC.HTM
"Advanced" regular expressions:
http://home.att.net/~JLBradley/REGULAR.HTM
Utility to list filters:
http://home.att.net/~JLBradley/FILTERS.HTM
[Jim Bradley; also see his home page for other goodies:
http://home.att.net/~JLBradley/ ]
--
Jeg er født med en bajer i hånden
sådan har jeg tænkt mig at jeg også ville dø
Jeg drikker øl til jeg opgiver ånden,
lad døden komme langsomt af sig selv, pø om pø
| |
Niels Teglsbo (28-04-2001)
| Kommentar Fra : Niels Teglsbo |
Dato : 28-04-01 15:48 |
|
Allan Olesen <aolesen@post3.tele.dk> wrote:
> Men ok - dit forslag ville være tæt nok på. I Agent giver det dog
> samme resultat som ' ' og '\ ', så jeg er efterhånden mest tilbøjelig
> til at påstå, at programmet har en bug (eftersom det hævder at bruge
> UNIX regexps).
Der står "UNIX based" (og UNIX regular expressions er vist heller ikke
helt veldefineret, jeg mener ikke alle bruger POSIX), men Agent burde
selvfølgelig følge sine egne hjælpefiler.
Men prøv at spørge i alt.usenet.offline-reader.forte-agent. Jeg mindes
noget om, at der var en fejl i Agents håndtering af regulære udtryk, der
blev diskuteret for længe siden.
--
Niels, The Offspring Mailinglist www.image.dk/~teglsbo
| |
Allan Olesen (28-04-2001)
| Kommentar Fra : Allan Olesen |
Dato : 28-04-01 22:22 |
|
Niels@fabel.dk (Niels Teglsbo) wrote:
>Men prøv at spørge i alt.usenet.offline-reader.forte-agent. Jeg mindes
>noget om, at der var en fejl i Agents håndtering af regulære udtryk, der
>blev diskuteret for længe siden.
Jeg søgte i gruppen med google og fandt den fejl, du omtalte. Det ser
ud til, at Agent i nogle tilfælde lader '?', '*' og '+' gælde for hele
den forudgående streng, hvor det kun burde gælde for det forudgående
tegn. Men man kan omgå det med en parentes.
Og ganske rigtigt - det her virker:
{80( ?)80( ?)80}
(Og til Frans: Tak for de andre links).
--
Allan Olesen, Lunderskov
Hvorfor er det kun Nej-sigerne, der må køre 55 i byen?
| |
|
|