Latest web development tutorials

espressioni regolari Perl

Regex (espressione regolare) descrive un insieme di stringhe che possono essere utilizzati per verificare se una stringa contiene una certa stringa corrispondente stringa non sostituire o rimuovere una condizione corrisponde una sottostringa da una stringa e così via.

Perl funzione regex del linguaggio è molto potente, in pratica il più potente linguaggio comune, molti progettazione del linguaggio supporto alle espressioni regolari quando sono riferimento Perl espressioni regolari.

Tre forme di espressioni regolari Perl sono abbinati, la sostituzione e la conversione:

  • Partita: m / / (Anche abbreviato / / M Omissis)

  • Sostituire: s / / /

  • Conversione: TR / / /

Queste tre forme e sono generalmente= ~ o! ~Con l'uso = ~ rappresenta partita! ~ Ha detto che non ha prodotto risultati.


operatore di partita

Partita operatore m // utilizzata per abbinare una stringa o una dichiarazione espressione regolare, ad esempio, per abbinare lo scalare $ bar nella "corsa", codice come segue:

#!/usr/bin/perl

$bar = "I am w3big site. welcome to w3big site.";
if ($bar =~ /run/){
   print "第一次匹配\n";
}else{
   print "第一次不匹配\n";
}

$bar = "run";
if ($bar =~ /run/){
   print "第二次匹配\n";
}else{
   print "第二次不匹配\n";
}

Il programma precedente, l'uscita è:

第一次匹配
第二次匹配

modificatori di pattern matching

Ci sono alcuni schema comune di corrispondenza modificatori, come segue:

modificatori descrizione
io Ignora modalità capitalizzazione
m Modalità multi-line
o Solo una volta assegnato
s modalità Single-line, "." Match "\ n" (il valore predefinito non corrisponde)
x Ignora modalità vuoto
g Partita globale
cg Dopo il fallimento di corrispondenza globale, permette di ritrovare una stringa corrispondente

variabili regex

Perl esisterà dopo l'elaborazione in base al valore del tre speciali nome della variabile:

  • La parte anteriore dellaporzione corrispondente della stringa: $ `
  • $ &: Stringa corrispondente
  • $ ': Non una corrispondenza per i restanti stringhe

Se queste tre variabili insieme, si otterrà la stringa originale.

Esempi sono i seguenti:

#!/usr/bin/perl

$string = "welcome to w3big site.";
$string =~ m/run/;
print "匹配前的字符串: $`\n";
print "匹配的字符串: $&\n";
print "匹配后的字符串: $'\n";

L'output del programma di cui sopra è:

匹配前的字符串: welcome to 
匹配的字符串: run
匹配后的字符串: oob site.

operatori Sostituzione

Sostituzione operatore s /// dell'operatore è quello di abbinare l'espansione dell'uso della nuova stringa per sostituire la stringa specificata. Il formato di base è il seguente:

s/PATTERN/REPLACEMENT/;

MODELLO a corrispondere il modello, SOSTITUZIONE per sostituire la stringa.

Ad esempio, "google" Sostituiremo la seguente stringa è "w3big":

#!/usr/bin/perl

$string = "welcome to google site.";
$string =~ s/google/w3big/;

print "$string\n";

L'output del programma di cui sopra è:

welcome to w3big site.

modificatore operazione di sostituzione

Sostituire modificatore di funzionamento come segue:

modificatori descrizione
io Se si aggiunge "i" il modificatore, quindi la sensibilità caso normale viene annullata, la "a" e "A" è la stessa.
m Il valore predefinito avvio regolare "^" e alla fine "$" è solo per la stringa regolare se accoppiato con un modificatore "m", quindi l'inizio e la fine di ogni riga faranno riferimento alla stringa: All'inizio di ogni riga è "^", alla fine è "$".
o Espressione viene eseguito solo una volta.
s Se si aggiunge "s" nel modificatore, quindi il valore di default. "" A nome di qualsiasi carattere tranne newline diventerà qualsiasi carattere, includa una nuova riga è!
x Se si aggiunge il modificatore, espressione caratteri vuoti verranno ignorati, se non è stato sfuggito.
g Sostituire tutte le stringhe corrispondenti.
e Come espressione stringa di sostituzione

operatori di conversione

Il seguente è un operatore di conversione modificatori associati:

modificatori descrizione
c La conversione di tutti i caratteri non specificato
d Eliminare tutti i caratteri specificati
s La stessa uscita ridotto ad una pluralità di carattere

Gli esempi che seguono la $ variabile stringa in lettere minuscole convertito in maiuscolo:

#!/usr/bin/perl 

$string = 'welcome to w3big site.';
$string =~ tr/a-z/A-z/;

print "$string\n";

L'output del programma di cui sopra è:

WELCOME TO w3big SITE.

L'esempio seguente utilizza / s variabile $ string ripetendo caratteri cancellati:

#!/usr/bin/perl

$string = 'w3big';
$string =~ tr/a-z/a-z/s;

print "$string\n";

L'output del programma di cui sopra è:

runob

Altri esempi:

$string =~ tr/\d/ /c;     # 把所有非数字字符替换为空格
$string =~ tr/\t //d;     # 删除tab和空格
$string =~ tr/0-9/ /cs    # 把数字间的其它字符替换为一个空格。

Più regole espressioni regolari

espressione descrizione
. Abbinare tutti i caratteri ad eccezione di nuova riga
x? Partita 0 o una stringa x
x * Partita 0 o più volte x stringa, ma il numero minimo di possibili corrispondenze
x + Partita 1 o più volte x stringa, ma il numero minimo di possibili corrispondenze
. * Partita 0 o più volte qualsiasi carattere
. + Partita 1 o più volte da qualsiasi carattere
{M} Corrispondere esattamente alla stringa specificata di m
{M, n} Partite m o più o meno specificato stringa di n
{M,} stringa più specifico Match o m
[] Il che corrisponde a un carattere all'interno di []
[^] Partita non soddisfa i caratteri in []
[0-9] Abbinare tutti i caratteri numerici
[AZ] Abbinare tutti i caratteri alfabetici minuscoli
[^ 0-9] Abbinare tutti i caratteri non numerici
[^ Az] Corrisponde a tutti i caratteri alfabetici minuscoli
^ Un personaggio che corrisponde all'inizio
$ Corrisponde al carattere fine del carattere
\ D Corrisponde a un carattere cifre, e [0-9] la stessa sintassi
\ D + Corrispondenti a più stringa numerica, e [0-9] + sintassi
\ D Non-digitale, l'altra con \ d
\ D + Non-digitale, l'altra con \ d +
\ W Una serie di lettere o numeri, e [a-zA-Z0-9] sintassi
\ W + E [a-zA-Z0-9] + sintassi
\ W lettere non inglesi o numeri, stringhe e [^ a-zA-Z0-9] la stessa sintassi
\ W + E [^ a-zA-Z0-9] + sintassi
\ S Spazi, e [\ n \ t \ r \ f] la stessa sintassi
\ S + E [\ n \ t \ r \ f] + come
\ S Non-spazio, e [^ \ n \ t \ r \ f] la stessa sintassi
\ S + E [^ \ n \ t \ r \ f] + sintassi
\ B lettere inglesi, numeri corrispondenti stringa di confine
\ B Non corrispondenti a alfabetica, numerica stringa di confine
A | B | C In linea con una stringa di caratteri che corrisponde al carattere o B o C carattere
abc Abc stringa corrispondente (modello) contengono () si ricorderà questo simbolo per trovare la stringa, è una sintassi molto utile. La prima stringa (all'interno) ha trovato questa variabile diventa $ 1 o \ 1 variabile e il secondo (interno) trovarono una variabile stringa in una variabile $ 2 \ 2, e così via fino.
/ Modello / i I Questo parametro indica ignorare caso in inglese, cioè, quando la stringa partita, ignorando caso domanda in inglese. \ Se si vuole trovare un carattere speciale in modo pattern, come ad esempio "*", dovrà aggiungere davanti al carattere il \ simbolo, questo permetterà di caratteri speciali non riescono