Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

REGEXP Teilausdrücke / Klammerung

13 views
Skip to first unread message

adw...@wagner-webservices.co.uk

unread,
Apr 17, 2013, 5:49:17 AM4/17/13
to
Hallo zusammen!

Aus einer Kundenliste möchte ich per MySQL Abfrage die Domains der dort hinterlegten Mail-Adressen rausselektieren. Also aus

irge...@domain.com
bl...@foo.de

möchte ich als Selektionsergebnis haben:

domain.com
foo.de

Dafür gibt´s reguläre Ausdrücke mit Klammerungen. In Perl würde man schreiben:

$a='beis...@meinedomain.de';
$a=~/.*\@(.*)/;
print $1;

Anschliessend könnte man dann auf den Inhalt der Klammer via $1 zugreifen.

Geht so etwas auch bei MySQL/REGEXP? Und wenn ja, hat da jemand eine konkrete Idee, wie?

Liebe Grüße,

Gerd Wagner

Niels Braczek

unread,
Apr 17, 2013, 6:28:45 AM4/17/13
to
Am 17.04.2013 11:49, schrieb adw...@wagner-webservices.co.uk:

> Aus einer Kundenliste möchte ich per MySQL Abfrage die Domains der dort hinterlegten Mail-Adressen rausselektieren. Also aus
>
> irge...@domain.com
> bl...@foo.de
>
> möchte ich als Selektionsergebnis haben:
>
> domain.com
> foo.de
>
> Dafür gibt´s reguläre Ausdrücke mit Klammerungen.

Das geht auch ohne RegExp.

SELECT SUBSTRING_INDEX(`email`, '@', -1) AS `domain`

MfG
Niels

--
| http://barcamp-wk.de · 3. Barcamp Westküste · Frühjahr 2014 |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
------------------------------------------------------------------
Message has been deleted

Thomas 'PointedEars' Lahn

unread,
Apr 18, 2013, 5:39:52 AM4/18/13
to
adw...@i-am-a-spammer.co.uk.invalid wrote:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bitte reparieren.

> […] In Perl würde man schreiben:
>
> $a='beis...@meinedomain.de';
> $a=~/.*\@(.*)/;
> print $1;
>
> Anschliessend könnte man dann auf den Inhalt der Klammer via $1 zugreifen.
>
> Geht so etwas auch bei MySQL/REGEXP?

Ja.

> Und wenn ja, hat da jemand eine konkrete Idee, wie?

Ja. Aber zeig erstmal Deine Versuche, die Du nach Lesen des MySQL-Handbuchs
sicher gemacht hast.

--
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Jürgen Exner

unread,
Apr 22, 2013, 1:39:39 PM4/22/13
to
On Wed, 17 Apr 2013 02:49:17 -0700 (PDT),
adw...@wagner-webservices.co.uk wrote in de.comp.datenbanken.mysql:

>Hallo zusammen!
>
>Aus einer Kundenliste möchte ich per MySQL Abfrage die Domains der dort hinterlegten Mail-Adressen rausselektieren. Also aus
>
>irge...@domain.com
>bl...@foo.de
>
>möchte ich als Selektionsergebnis haben:
>
>domain.com
>foo.de
>
>Dafür gibt´s reguläre Ausdrücke mit Klammerungen. In Perl würde man schreiben:
>
>$a='beis...@meinedomain.de';
>$a=~/.*\@(.*)/;
>print $1;

Aehhh, nein. In Perl wuerde "man" schreiben:

my $a = 'irge...@domain.com';
my $r = (split(/@/, $a))[1];
print $r;

Faustregel: wenn du kennst was du willst, dann nimm RE.
Wenn du kennst was du nicht willst, in diesem Fall den Klammeraffen,
dann nimm split.

jue
0 new messages