PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Codeschnipsel

Reguläre Ausdrücke(RegEx) Tutorial

Zurück zur Übersicht
Dieses Tutorial erklärt euch den Umgang mit preg_match

Hattet ihr auch schon das Problem, dass ihr einen bestimmten logischen Textteil aus einem großen
Text herausfiltern musstet und ggf. ersetzten und versteht die logik von preg_match / preg_replace / usw. nicht?

Ich erkläre es euch ganz einfach.

Die Zeichen



[quote]

. entspricht einem beliebigen Zeichen ( also Buchstaben,Zahlen,sonderzeichen,bindestriche,usw.).
+ entspricht anzahl >= 1
.+ entspricht mehreren beliebigen Zeichen
* entspricht anzahl >= 0
.* entspricht kein oder mehrere beliebigen Zeichen
? entspricht einem Zeichen
.? entspricht kein oder ein beliebiges Zeichen
| entspricht der OR bzw. ODER Verknüpfung
^ entspricht zweierlei: einmal der NOT bzw. NICHT Verknüpfung(aber nur in der [] klammer) und anderesmal, dass das folgende zeichen am anfang stehen muss.

alle oben genannten zeichen müssen als echte zeichen mit dem \ maskiert werden, also z.B. \. entspricht dann dem .

\w entspricht einem Buchstabe
\w+ entsprcht mehreren (oder einem) Buchstaben
\d entspricht einer Zahl
\d+ entspricht mehreren (oder einer) Zahlen

() entspricht einer Gruppe, wird also gespeichert. Die Erste Gruppe kann nachher bei preg_replace im replacement als $1 angegeben werden, die zweite als $2 usw.
(\w+) entspricht mehreren gespeicherten Buchstaben
[] entspricht einem Bereich
[a-z] entspricht den kleinen Buchstaben a bis z
[A-Z] entspricht den grossen Buchstaben A bis Z

/ oder # müssen an anfang und ende!
[/quote]

Alle Zeichen, die hier nicht aufgeführt sind, kann man einfach so in den pattern reinschreiben

Beispiele

Gültigkeit einer Email

<?php
$email 
= "[email protected]";
if(
preg_match("/([0-9a-zA-Z])@(\w+)\.(\w+)/",$email)){ //gesucht wird nach beliebig vielen zeichen von 0 bis 9 a bis z und A-Z denen ein @ folgt.
// Diesem @ folgt eine buchstabenkette mit punkt und noch einer buchstabenkette
    
echo $email;
}else {
    echo 
"nicht gültig";
}
?>


AUSGABE: [email protected]



BBCodes
a)
<?php
$text 
= "[b ]fetter Text[/b]";//ohne das leerzeichen bei [b ]
$replace = '<b>$1</b>';//bzw
//$replace = '<p style="font-weight:bold;">$1</p>';
$text = preg_replace("/\[b\](.*)\[\/b\]/",$replace,$text);
echo 
$text;
?>

AUSGABE: fetter Text

b)
<?php
$text 
= "[url =http://www.google.de]Link[/url]";//ohne das leerzeichen bei [url ]
$replace = '<a href="$1">$2</a>';// hier ist jetzt das leerlassen von <a target="_blank" href="  ">  nicht bedacht
$text = preg_replace("/\[url=(.*)\](.*)\[\/url\]/",$replace,$text);
echo 
$text;
?>

AUSGABE: [url=http://www.google.de]Link
[color=red]
ACHTUNG!: SÄMTLICHE BEISPIELE SOLLTEN noch gegen Design-Zerstörer geschützt werden...[/color]

http://www.regex-tester.de/regex_glossar.html


Erweiterungen folgen bei Bedarf noch

Danke für eure Aufmerksamkeit, und bei Fragen einfach melden 😛

Posten in anderen Foren oder auf der eigenen Website sind okay, solange ich genannt werde.
Änderungen unerwünscht 😀

EDIT1: tipps von B.C. implementiert :bier:

Kommentare

Autor spooooongq

Zurück zur Übersicht
Autor: Nils Reimers
Zurück: URLs im Text identifizieren

Für Fortgeschrittene

  • Objektorientierte Programmierung
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur
  • CasinoAndy Finland
  • Casinoohnelizenz.info
  • Cryptocasinomaster.com
  • CasinoHEX.at
  • inkedin.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 1 Min.
  2. Linevast Ø 2 Min.
  3. netcup Ø 3 Min.
  4. All-Inkl.com Ø 6 Min.
  5. checkdomain Ø 8 Min.
  6. dogado Ø 17 Min.
  7. bplaced Ø 17 Min.
  8. Contabo Ø 25 Min.
  9. Hetzner Ø 49 Min.
  10. ONE.com Ø 62 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2023

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}