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 |