Latest web development tutorials

Perl wyrażeń regularnych

Regex (wyrażenie regularne) opisuje zbiór łańcuchów, które można wykorzystać do sprawdzenia, czy ciąg zawiera określony podciąg pasujący podciąg zastępują lub usunąć warunek dopasowuje podciąg z ciągiem i tak dalej.

Perl funkcja regex języka jest bardzo silny, w zasadzie najmocniejszy wspólny język, wiele projektowania wsparcie językowe wyrażenie regularne, gdy są wyrażenia regularne odniesienia Perl.

Trzy formy wyrażeń regularnych Perl są dopasowane, wymiany i konwersji:

  • Mecz: m / / (W skrócie również jako / / Pominięte m)

  • Wymienić: s / / /

  • Konwersja: tr / / /

Te trzy formy i generalnie= ~ lub! ~Z wykorzystaniem = ~ reprezentuje mecz! ~ Stwierdziło, że nie pasują do siebie.


operator meczów

Mecz Operator m // używane w celu dopasowania ciąg lub wyrażenie regularne sprawozdania, na przykład, aby dopasować skalarne $ bar w "biegu", kod w następujący sposób:

#!/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";
}

Powyższy program, wyjście jest:

第一次匹配
第二次匹配

pasujące do wzorca modyfikatory

Istnieją pewne wspólne wzorzec dopasowania modyfikatory, co następuje:

modyfikatory opis
ja Ignoruj ​​tryb kapitalizacji
m Tryb multi-line
O Tylko raz przypisano
s Tryb pojedynczego wiersza, "." Mecz "\ n" (domyślnie nie pasuje)
x Ignoruj ​​tryb pusty
g Globalny meczów
CG Po niepowodzeniu globalnego dopasowania, pozwala ponownie znaleźć pasujący ciąg

zmienne regex

Perl występują po obróbce odpowiednio do wartości trzech specjalnej nazwy zmiennych:

  • Przednia częśćczęści pasującej ciąg: $ `
  • $ &: Matching ciąg
  • $ ': Nie pasuje do pozostałych strun

Jeśli tych trzech zmiennych razem, dostaniesz oryginalny łańcuch.

Przykłady są następujące:

#!/usr/bin/perl

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

Powyższy program jest wyjście:

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

operatorzy Zastępstwa

Zmiana operatora s /// Operator jest dopasowanie rozszerzenie stosowania nowego łańcucha zastąpić określony ciąg. Podstawowy format jest następujący:

s/PATTERN/REPLACEMENT/;

WZÓR dopasować wzorzec, zamiennik do wymiany łańcucha.

Na przykład, "google" Zamieniamy następujący ciąg jest "w3big":

#!/usr/bin/perl

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

print "$string\n";

Powyższy program jest wyjście:

welcome to w3big site.

Operacja Wymiana modyfikator

Wymień modyfikator pracy w następujący sposób:

modyfikatory opis
ja Jeśli dodać "i" w modyfikatora, to regularne czułość sprawa zostanie anulowane, "a" i "A" jest taka sama.
m Domyślną rozpocząć regularne "^" i koniec "$" jest właśnie dla zwykłego sznurka jeśli w połączeniu z "m" modyfikator, to początek i koniec każdego wiersza będzie odnosić się do napisu: Na początku każdego wiersza jest "^", koniec jest "$".
O Ekspresja jest wykonywany tylko raz.
s Jeśli dodać "S" w modyfikatora, to ustawienie domyślne. "" W imieniu dowolny znak z wyjątkiem nowej linii będzie dowolny znak, w tym nowej linii jest!
x Jeśli dodać modyfikator, ekspresja puste znaki będą ignorowane, chyba że zostało uciekł.
g Wymień wszystkie pasujące ciągi.
e Jako wyrażenie wymiana strun

Operatorzy Conversion

Poniżej znajduje się operator konwersji związane modyfikatory:

modyfikatory opis
c Konwersja wszystkich znaków nie podano
d Usuń wszystkie wymienione znaki
s W tym samym moc zmniejszyła się do wielu postaci

Poniższe przykłady zmienna $ string we wszystkich małych liter na wielkie litery: zamienione

#!/usr/bin/perl 

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

print "$string\n";

Powyższy program jest wyjście:

WELCOME TO w3big SITE.

W poniższym przykładzie użyto zmiennej $ / s ciąg powtarzających się znaków usuniętych:

#!/usr/bin/perl

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

print "$string\n";

Powyższy program jest wyjście:

runob

Więcej przykładów:

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

Więcej wyrażenie regularne zasady

wyrażenie opis
, Dopasuj wszystkie znaki oprócz nowej linii
x? Mecz 0 lub ciąg x
x * Mecz 0 lub więcej razy x ciąg, ale minimalna liczba możliwych meczów
x + Mecz 1 lub więcej razy x ciąg, ale minimalna liczba możliwych meczów
*. Mecz 0 lub więcej razy dowolny znak
. + Równej 1 lub więcej razy przez charakteru
{M} Dokładnie dopasować określony ciąg m
{M, n} Zapałki m lub mniej lub bardziej określony ciąg n
{M} m równej lub większej określonego ciągu
[] Która pasuje do charakteru ciągu []
[^] Mecz nie spełnia znaki []
[0-9] Dopasuj wszystkie znaki numeryczne
[AZ] Dopasuj wszystkie małe litery alfabetu
[^ 0-9] Dopasuj wszystkie znaki nienumeryczne
[^ Az] Mecze jakieś małe litery alfabetu
^ Postać, która dopasowuje początek
$ Dopasowuje znak końcowy znak
\ D Dopasowuje znak cyfrowy i [0-9] z tej samej składni
\ D + Dopasuj wielokrotnego ciąg liczbowy, a [0-9] + składni
\ D Non-cyfrowy, drugi z \ d
\ D + Non-cyfrowy, drugi z \ d +
\ W Ciąg liter lub cyfr i [a-zA-Z0-9] składni
\ W + A [a-zA-Z0-9] + składni
\ W Non-angielskie litery lub liczby, ciągi i [^ a-zA-Z0-9] ta sama składnia
\ W + I [^ a-zA-Z0-9] + składni
\ S Przestrzenie i [\ n \ t \ r \ f] ta sama składnia
\ S + A [\ n \ t \ r \ f] + jako
\ S Non-space i [^ \ n \ t \ r \ f] ta sama składnia
\ S + I [^ \ n \ t \ r \ f] + składni
\ B Angielskie litery, cyfry pasujące Granica ciąg
\ B Niedopasowane w kolejności alfabetycznej, ciąg liczbowy granica
a | b | c Zgodnie z ciągu znaków pasujący do charakteru lub B lub C charakter
ABC Abc dopasowanie string (wzór) zawierają () będą pamiętać ten symbol, aby znaleźć ciąg, jest to bardzo przydatna składnia. Pierwszy ciąg (do wewnątrz), które oceniły tę zmienną staje $ 1 lub \ 1 zmienna, a drugi (wewnętrzny) stwierdzono zmienną łańcucha do zmiennej $ \ 2 lub 2, i tak dalej w dół.
/ Wzorzec / i I ten parametr wskazuje zignorować sprawę w języku angielskim, to znaczy, gdy łańcuch mecz, ignorując przypadek pytanie w języku angielskim. \ Jeśli chcesz znaleźć znak specjalny w trybie wzorca, takich jak "*", będzie musiał włożyć przed znakiem na \ symbol, pozwoli to nie znaki specjalne