Ecco un elenco di esempi di esempi di espressioni regolari di php. forse questo aiuta qualcuno, come amministratore/o un altro utente non può chiarire, che stavo cercando di condividere i miei approcci.Espressioni e corrispondenza regolari
preg_match esegue la ricerca (preg_replace è un sostituto).
preg_match ha tre parametri: preg_match (FindWhat, FindWhere, GivingOutput);
esempio 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 trova solo un risultato (il risultato in primo luogo trovato), con due opzioni: [0] o [1].
esempio 2): trovare di tutto (tutti i caratteri, parole ..) dentro i nostri criteri di ricerca:
<?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
(Si noti che l'opzione [1] non è disponibile se quando tu non utilizzare le parentesi in criteri di ricerca (come abbiamo fatto in precedenza, nell'esempio 1)
esempio 3): se il testo di arrivo ha molte stessi avvenimenti, come questo: $ text = 'ciao utente Jimmy Jones, sono io. ciao utente Mery Pawders, è ancora me. ';
ora, qui ci sono due partite diverse, quindi, abbiamo bisogno di usare 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,
esempio 4): ricerca tra le tante possibilità:
<?php
$text = 'member ACCOUNT7';
preg_match("/ACCOUNT[123456789]/",$text,$out);
echo $out[1];
?>
output will be:
ACCOUNT7
esempio 5): Per trovare una stringa, mentre il testo di input contiene nuove righe, è necessario utilizzare ** s ** alla fine;
<?php
$text = 'one
two
three';
preg_match("/one(.*?)three/s",$text,$out);
echo $out[1];
?>
output will be:
two
esempio 6): La tua ricerca è case sempre sensibile. Per effettuare una ricerca INSENSITIVE del caso, utilizzare i alla fine (se lo si desidera, senza s);
<?php
$text = 'ONE TWO TREE';
preg_match("/one(.*?)three/si",$text,$out);
echo $out[1];
?>
esempio 7): per la ricerca di caratteri speciali (come /" < * 'ed ecc ..) all'interno preg_match, è necessario utilizzare questo segno di fuga:.? \
<?php
$text = 'hello Jimmy/Kroger ';
preg_match("/Jimmy\/Kroger/",$text,$out);
echo $out[0];
?>
ora, possiamo usare^operatore, che cerca i risultati al contrario.
esempio 8): trovare tutto piuttosto che lettere e numeri:
<?php
$text = '[email protected]*&^)($%';
preg_match_all('/[^a-zA-Z0-9.]/',$text,$out);
foreach ($out[0] as $varr) {echo $varr;}
?>
output will be:
@*&^)($%
per ricerca e sostituzione, abbiamo una struttura po 'diverso, come abbiamo bisogno di usare la nuova variabile.
esempio 9): trovare e sostituire tutto piuttosto che lettere e numeri con altro carattere, utilizzando questo operatore:^
<?php
$text = 'ab2sq)(&*(%$%^[email protected]%n23f9';
$variable = preg_replace('/[^a-zA-Z0-9.]/','a',$text);
echo $variable;
?>
output will be:
ab2sqn23f9
esempio 10): cercare e aggiungere qualcosa dentro la trovata 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
esempio 11): trovare tutti i link testo all'interno:
<?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
esempio 12): come l'esempio 11 (ma con sostituzione) - trovare i link nel testo e metterli nei tag ancorate:
<?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;
?>
uscita sarà la stessa frase , ma i collegamenti saranno ancorati.
1) Suggerimenti: non utilizzare preg_match() se si desidera controllare solo se una stringa è contenuta in un'altra stringa. Usa invece stristr() o strpos() poiché saranno più veloci.
2) ** più avanzate, esempi specifici su PHP espressioni regolari, uso Google, o vedere ** opzioni complete e manuali su - http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
(È possibile rivedere a breve tutta la lista degli operatori qui -
http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers
http://www.noupe.com/php/php-regular-expressions.html
)
3) per i codici HMTL, esistono luce speciale, php morbido, called- Dom Parser. ma a volte, se conosci bene le espressioni regolari di php, potresti non aver bisogno di dom parser.
Come sarebbe avviare un e-mail con 'Shop' e terminare con' 0'? 'SHOP_psgarden_0' non è un indirizzo email valido. –