Hier ist eine Liste von Beispielen für Beispiele für reguläre Ausdrücke von PHP. vielleicht hilft das jemand, wie admin/oder ein anderer nutzer klarstellen kann, dass ich versuchte meine ansätze zu teilen.Reguläre Ausdrücke und Matching
preg_match ist die Suche (preg_replace ist ein Ersatz).
preg_match hat drei Parameter - preg_match (FindWhat, FindWhere, GivingOutput);
Beispiel 1):
<?php
//everything expect letters and numbers
$text='[email protected]';
$newfilename=preg_match('/[^a-zA-Z0-9.]/',$text, $out);
echo $out[0];
?>
output will be:
@
preg_match findet nur ein Ergebnis (das zuerst gefundene Ergebnis), mit zwei Optionen: [0] oder [1].
Beispiel 2): alles (alle Zeichen, Worte finden ..) in unseren Suchkriterien:
<?php
$text='abcdefghijklmnopqrst';
$newfilename=preg_match('/ij(.*?)mn/',$text, $out);
echo $out[0];
echo $out[1];
?>
[1] -gives only the inner search result (what we had in the brackets, between "ij" and "mn"):
kl
[0] -gives the whole search result:
ijklmn
(Beachten Sie, dass die Option [1], wenn nicht verfügbar ist, wenn Sie verwenden Klammern nicht in Suchkriterien
Beispiel 3) (wie wir oben in Beispiel 1 haben): , wenn Ihr Zieltext viele gleiche Vorkommen hat, wie folgt aus: $ text = "Hallo Benutzer Jimmy Jones, sein Ich. Hallo Benutzer Mery Pawders, es ist immer noch ich. ';
jetzt, hier sind zwei verschiedene Spiele, so, wir preg_match_all
<?php
$text='hello user Jimmy Jones, its me. hello user Mery Pawders, its me.';
$newfilename=preg_match_all('/hello user (.*?) its/',$text, $out);
foreach ($out[1] as $found_one) {echo $found_one;}
//or use $out[0] for full search match
?>
output will be:
Jimmy Jones,
Mery Pawders,
Beispiel 4) verwenden müssen: Suche unter vielen Möglichkeiten:
<?php
$text = 'member ACCOUNT7';
preg_match("/ACCOUNT[123456789]/",$text,$out);
echo $out[1];
?>
output will be:
ACCOUNT7
Beispiel 5): Um nach einer Zeichenfolge zu suchen, während der Eingabetext neue Zeilen enthält, müssen Sie am Ende ** ** verwenden.
<?php
$text = 'one
two
three';
preg_match("/one(.*?)three/s",$text,$out);
echo $out[1];
?>
output will be:
two
Beispiel 6): Ihre Suche wird immer zwischen Groß- und Klein. Um eine INSENSITIVE Suche zu machen, verwenden Sie i am Ende (wenn Sie wollen, ohne s);
<?php
$text = 'ONE TWO TREE';
preg_match("/one(.*?)three/si",$text,$out);
echo $out[1];
?>
Beispiel 7): für Sonderzeichen suchen (wie /“< * 'und etc ..) innerhalb preg_match, müssen Sie dieses Escape-Zeichen verwenden.? \
<?php
$text = 'hello Jimmy/Kroger ';
preg_match("/Jimmy\/Kroger/",$text,$out);
echo $out[0];
?>
Jetzt können wir^Operator verwenden, der umgekehrt nach Ergebnissen sucht.
Beispiel 8): alles eher als Buchstaben und Zahlen finden:
<?php
$text = '[email protected]*&^)($%';
preg_match_all('/[^a-zA-Z0-9.]/',$text,$out);
foreach ($out[0] as $varr) {echo $varr;}
?>
output will be:
@*&^)($%
für SEARCH und REPLACE, haben wir eine etwas andere Struktur, wie wir die neue Variable verwenden müssen.
Beispiel 9): finden und alles statt Buchstaben und Zahlen mit anderen Zeichen ersetzen, mit diesem Operator:^
<?php
$text = 'ab2sq)(&*(%$%^[email protected]%n23f9';
$variable = preg_replace('/[^a-zA-Z0-9.]/','a',$text);
echo $variable;
?>
output will be:
ab2sqn23f9
Beispiel 10): suchen und etwas in dem gefundenen hinzufügen resuls:
<?php
$text = 'Hi, its me, Niko from Austria';
$variable = preg_replace('/(Niko.*?) from/', '$1 Gomez', $text);
echo $variable;
?>
output will be :
its me, Niko Gomez Austria
Beispiel 11): alle Links finden Innerer Text:
<?php
$text = 'hi, my site is http://example.com, and on my page, at http://example.com/page37/blabla.html i wrote something..';
preg_match_all("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",$text, $out);
foreach($out[0] as $varr){echo $varr;}
?>
output will be:
http://example.com
http://example.com/page37/blabla.html
Beispiel 12): wie das Beispiel 11 (aber mit Ersetzen) - Links in Text finden und sie in verankerten Tags setzen:
<?php
$text = 'hi, my site is http://example.com, and on my page, at http://example.com/page37/trid.html i wrote something..';
$variable = preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",'<a href="\\0">\\0</a>', $text);
echo $variable;
?>
Ausgang wird der gleiche Satz sein , aber die Links werden verankert.
1) Tipps: Verwenden Sie nicht preg_match(), wenn Sie nur überprüfen möchten, ob eine Zeichenfolge in einer anderen Zeichenfolge enthalten ist. Verwenden Sie stattdessen stristr() oder strpos(), da sie schneller sind.
2) ** weiter fortgeschritten ist, konkrete Beispiele zu PHP reguläre Ausdrücke, die Verwendung von Google oder sehen ** FULL OPTIONS und Handbücher an - http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
(Sie können hier in Kürze alle Operatoren Liste überprüfen -
http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers
http://www.noupe.com/php/php-regular-expressions.html
)
3) für HMTL-Codes, gibt es spezielles Licht, php weich, called- Dom Parser. Aber manchmal, wenn Sie PHP reguläre Ausdrücke gut kennen, brauchen Sie vielleicht keinen Dom Parser.
Wie würde eine E-Mail beginnt mit 'Shop' und endet mit '0'? 'SHOP_psgarden_0' ist keine gültige E-Mail-Adresse. –