PHP Regex preg_match()

Hallo zusammen.

Ich brauche mal wieder hilfe bei den Regular Expressions und zwar ich bräuchte:

  1. Regex für Buchstaben A-Z und 0-9
  2. Regex für Buchstaben A-Z
  3. Regex für Zahlen 0-94
  4. Regex für E-Mailadressen
  5. Regex für Telefonnummern (nicht so wichtig)

Ich bekomms einfach nicht hin die Regex zu erstellen.

Wie gehe ich vor, wo lese ich nach??

Besten Dank.
Sebastian

Kannst Du ein Beispiel nennen, aus welchem Text Du was erhalten willst?

Müsste irgenwie so aussehen:
$meinInhalt ~= /(+)([A-z])([0-94])(+@+.[A-z]{2,3})(\d+)/

echo $1, $2, $3, $4; (oder geht das nur in PERL?)

Für die E-Mail Adresse findest Du im Netz sicher noch bessere PatternMatches… auch für die Telefonnumer.

Deine Anfrage ist aber mit Googeln relativ schnell zu lösen… !

Gruss
Oliver

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Kannst Du ein Beispiel nennen, aus welchem Text Du was
erhalten willst?

zB Buchstaben:
Input: Sebastian Moser
Output: OK… Buchstaben und Leerzeichen

zB Zahlen und Buchstaben:
Input: Betreff zu Thema 11
Output: OK… Buchstaben und Leerzeichen und Zahlen

zB E-Mail:
Input: [email protected]
Output: OK… erklärt sich von selbst!

zB Telefonnumer (Klammer, Pluszeichen, Leerzeichen, Bindestrich erlaubt):
Variante 1 Input: 0043552212345
Variante 2 Input: +43 (0)552212345
Output: OK…!

Müsste irgenwie so aussehen:
$meinInhalt ~= /(+)([A-z])([0-94])(+@+.[A-z]{2,3})(\d+)/

Welches wäre das denn? (E-mail oder?)

echo $1, $2, $3, $4; (oder geht das nur in PERL?)

kA, ich komm mit den REGEX garnicht klar.

Für die E-Mail Adresse findest Du im Netz sicher noch bessere
PatternMatches… auch für die Telefonnumer.

Das habe ich eh schon gefunden.

Deine Anfrage ist aber mit Googeln relativ schnell zu lösen…

Dann suche ich aber falsch, bzw. sehe nicht ob das stimmt, was ich gefunden habe.

Hallo

  1. Regex für Buchstaben A-Z und 0-9
 preg\_match('/([A-Z0-9]+)/', $text, $matches);

=>Zeichenklasse mit 1 oder mehreren Zeichen: […]+, geklammert in ()

  1. Regex für Buchstaben A-Z
 preg\_match('/([A-Z]+)/', $text, $matches);

=>s.o.

  1. Regex für Zahlen 0-94

Oops, da mußte icherstmal überlegen:

 $text = "94";
 
 if(preg\_match('/
 (?




> 4) Regex für E-Mailadressen


Das ist nicht trivial in PHP, siehe:
http://www.linuxjournal.com/article/9585

In Perl ist das schon ausgearbeitet,
da gibt es ein Modul "Email::Valid",
welches eben E-Mails validiert.
http://search.cpan.org/~rjbs/Email-Valid-0.179/
oder auch "RFC::RFC822::Address"
http://search.cpan.org/~abigail/RFC\_RFC822\_Address-1.5/



> 5) Regex für Telefonnummern (nicht so wichtig)


Wie dürfen die formatiert sein?



> Ich bekomms einfach nicht hin die Regex zu erstellen.  
> Wie gehe ich vor, wo lese ich nach??


Friedl-Buch?

Grüße

CMБ

Da du hier immer wieder nach den simpelsten regulaeren Ausdruecken fragst, mal eine Linkliste wo es VIELE Informationen gibt:

PHP Handbuch
http://de2.php.net/manual/de/intro.pcre.php
Viele Infos, unbedingt auch die Nutzerkommentare beachten, die viele fertige Ausdruecke liefern

Wikipedia
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
ein paar Basisinfos, aber gut zusammengefasst, auch die Weblinks beachten!

Devmag
http://www.devmag.net/webprog/regulaere_ausdruecke.htm
kurze Einfuehrung anhand von Beispielen erklaert

SelfHTML
http://de.selfhtml.org/perl/sprache/regexpr.htm
Zwar fuer Perl, der Syntax der Regulaeren Ausdruecke ist aber identisch. Sehr gut anhand von Beispielen erklaert

Weitere Links:
http://tut.php-quake.net/regex.html
http://pi.informatik.uni-siegen.de/Mitarbeiter/schuh…
http://www.regular-expressions.info/
http://www.google.de/search?q=regulaere+ausdruecke
http://www.google.de/search?q=regular+expression

Und wenn du es SEHR ausfuehlich haben willst:
http://www.amazon.de/Regul%C3%A4re-Ausdr%C3%BCcke-Je…

Gruesse
Stefan

Huhu

zB E-Mail:
Input: [email protected]
Output: OK… erklärt sich von selbst!

aber ganz schlecht gewähltes beispiel.

striche unterstriche punkte im namen ?

nur mal so als eingebung.

bla_bla-bla.bla_bla-bla@bla-bla_bla.de

weil leute immer nicht alles testen , kann ich bei vielen systemen mich nicht anmelden. Ich hab striche in der Domain, wird von vielen nicht akzeptiert, weil eben nur [email protected] getestet wurde.

aber ganz schlecht gewähltes beispiel.

striche unterstriche punkte im namen ?

nur mal so als eingebung.

bla_bla-bla.bla_bla-bla@bla-bla_bla.de

Auch Umlaute in Domainnamen sind heutzutage erlaubt. Also auch darauf achten!

  1. Regex für Buchstaben A-Z und 0-9

preg_match(’/([A-Z0-9]+)/’, $text, $matches);

=>Zeichenklasse mit 1 oder mehreren Zeichen: […]+,
geklammert in ()

  1. Regex für Buchstaben A-Z

preg_match(’/([A-Z]+)/’, $text, $matches);

=>s.o.

  1. Regex für Zahlen 0-94

Oops, da mußte icherstmal überlegen:

$text = „94“;

if(preg_match(’/
(?

Gleich mal alle ausprobieren.

  1. Regex für E-Mailadressen

Das ist nicht trivial in PHP, siehe:
http://www.linuxjournal.com/article/9585

In Perl ist das schon ausgearbeitet,
da gibt es ein Modul „Email::Valid“,
welches eben E-Mails validiert.
http://search.cpan.org/~rjbs/Email-Valid-0.179/
oder auch „RFC::RFC822::Address“
http://search.cpan.org/~abigail/RFC_RFC822_Address-1.5/

He super, die function ist genial. Danke!

  1. Regex für Telefonnummern (nicht so wichtig)

Wie dürfen die formatiert sein?

erlaubte zeichen sind: 0-9, (, ), -, LEERZEICHEN, das dürfte glaube ich alles sein.

Ich bekomms einfach nicht hin die Regex zu erstellen.
Wie gehe ich vor, wo lese ich nach??

Friedl-Buch?

Ich glaub ich muss mir bald mal diese Buch zulegen, sonst wird das nichts.

Gruss,
Sebastian

Ha ha ha, toller witz.

Hast du dir schon mal so eine öüä domain geholt, dann weisst auch du das das alle die nicht deutsche einstellungen haben, keine chance haben die domain aufzurufen.

Ergo ist das mit dem öäü nur nen marketing witz , es verwendet kaum einer, weil auch kaum einer die seite aufrufen kann. Und International ist die domain dann tot.

ne nur in deutschen domain mit deutschen browser, sonst wird das nix mit dem öäü

ach ja, es gilt auch % / \ + und noch viele mehr zeichen, aber ich denke mal - und unterstrich sind doch standarts auf die man mindestens testen sollte.

so denke ich da an die vielen millionen @t-online.de undsoweiter.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

kann. Und International ist die domain dann tot.

ne nur in deutschen domain mit deutschen browser, sonst wird
das nix mit dem öäü

Nicht ganz Tot :smile:
Aber hier nachzulesen warum es defenitif nix bringt :smile:
http://www.g4w.de/idn-domain-registrierung.php

Aber klar zum echten test müsste man alles testen. Auch idn-domain.
Aber der Mindestandart ist immernoch Strich und Unterstrich.