Skip site navigation (1) Skip section navigation (2)

Re: Pattern Matching

From: Michael Renner <renner(at)inqnet(dot)at>
To: Florian Aumeier <faumeier(at)mediaventures(dot)de>
Cc: "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: Pattern Matching
Date: 2008-07-07 09:19:04
Message-ID: 4871DF88.40101@inqnet.at (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Florian Aumeier schrieb:
> Guten Morgen allerseits
> 
> wie kann ich bei Postgres in einem Pattern eine Zeichenfolge ausschließen?
> 
> Als Beispiel zwei unterschiedliche URL. Die erste URL soll gematched 
> werden, die zweite nicht:
> 
> a) 'http://asbojesus.wordpress.com/2007/03/02/14/'
> b) 'http://feeds.wordpress.com/1.0/goreddit/globolibro.wordpress.com/319/'
> 
> Meine Idee war es mit diesem Pattern zu machen
> 
> E'^http://[a-zA-Z0-9]+[^(feeds)]\.wordpress\.com'
> 
> was leider nicht funktioniert, da dass [^(feeds)] nicht nur die 
> Zeichenfolge 'feeds' ausschließt, sondern die einzelnen Zeichen 'f e d s'.

Um das so umzusetzen brauchst du einen negative lookbefore [1]; ich bin 
mir nicht sicher ob das in den PG PCRE implementiert ist.

Zum allgemeinen regex-basteln eignen sich Regex Coach [2] oder ähnliche 
Tools ziemlich gut (interaktives Testen).

Und als Lösungsansatz würd ich unter der Annahme, dass die URLs einzeln 
in einer Column stehen, ein "not ilike 'http://feeds.wordpress.com/%'" 
empfehlen, das sollt auch relativ flott sein.


lg,
michael

[1] http://www.regular-expressions.info/lookaround.html
[2] http://www.weitz.de/regex-coach/

-- 

Michael Renner
InQnet GmbH
Praterstraße 31
A-1020 Wien

Tel.: +43 1 212 7650 521
Fax.: +43 1 212 7650 610

In response to

pgsql-de-allgemein by date

Next:From: Thomas MarkusDate: 2008-07-07 10:13:52
Subject: Re: Pattern Matching
Previous:From: Florian AumeierDate: 2008-07-07 07:31:35
Subject: Pattern Matching

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group