Latest web development tutorials

ekspresi reguler Perl

Regex (ekspresi reguler) menggambarkan satu set string yang dapat digunakan untuk memeriksa apakah string mengandung substring tertentu yang cocok substring jangan mengganti atau menghapus kondisi cocok dengan substring dari string dan sebagainya.

Perl fungsi regex bahasa sangat kuat, pada dasarnya bahasa umum yang paling kuat, banyak desain bahasa dukungan ekspresi reguler ketika mereka referensi Perl ekspresi reguler.

Tiga bentuk Perl ekspresi reguler dicocokkan, penggantian dan konversi:

  • Pertandingan: m / / (Juga disingkat / / Dihilangkan m)

  • Ganti: s / / /

  • Konversi: tr / / /

Ketiga bentuk dan umumnya= ~ atau! ~Dengan menggunakan = ~ merupakan pertandingan! ~ Kata mereka tidak cocok.


Operator pertandingan

Pertandingan Operator m // digunakan untuk mencocokkan string atau pernyataan ekspresi reguler, misalnya, untuk mencocokkan skalar $ bar di "run", kode sebagai berikut:

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

Program di atas, output adalah:

第一次匹配
第二次匹配

pengubah pencocokan pola

Ada beberapa pola umum yang cocok pengubah, sebagai berikut:

pengubah deskripsi
saya Abaikan modus kapitalisasi
m mode multi-line
o Hanya ditugaskan sekali
s mode single-line, "." Match "\ n" (default tidak sesuai)
x Abaikan modus kosong
g Pertandingan global
cg Setelah kegagalan pencocokan global, memungkinkan untuk menemukan string yang cocok lagi

variabel regex

Perl akan ada setelah pengolahan untuk mencocokkan nilai dari tiga nama variabel khusus:

  • Bagian depan bagian daribagian pencocokan string: $ `
  • $ &: Matching tali
  • $ ': Tidak cocok untuk string yang tersisa

Jika tiga variabel ini bersama-sama, Anda akan mendapatkan string asli.

Contohnya adalah sebagai berikut:

#!/usr/bin/perl

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

Output program di atas adalah:

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

operator Pergantian

Operator /// Pergantian Operator adalah untuk mencocokkan perluasan penggunaan string baru untuk menggantikan string yang ditentukan. Format dasar adalah sebagai berikut:

s/PATTERN/REPLACEMENT/;

POLA untuk mencocokkan pola, REPLACEMENT untuk menggantikan string.

Misalnya, "google" Kami akan mengganti string berikut adalah "w3big":

#!/usr/bin/perl

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

print "$string\n";

Output program di atas adalah:

welcome to w3big site.

Penggantian operasi pengubah

Menggantikan operasi pengubah sebagai berikut:

pengubah deskripsi
saya Jika Anda menambahkan "i" di modifikator, maka sensitivitas kasus biasa akan dibatalkan, "a" dan "A" adalah sama.
m default mulai biasa "^" dan akhirnya "$" hanya untuk string biasa jika ditambah dengan "m" pengubah, maka awal dan akhir setiap baris akan merujuk ke string: Pada awal setiap baris adalah "^", akhirnya adalah "$."
o Ekspresi dijalankan hanya sekali.
s Jika Anda menambahkan "s" di modifikator, maka default. "" Atas nama karakter apapun kecuali baris akan menjadi karakter apapun, termasuk baris baru adalah!
x Jika Anda menambahkan pengubah, ekspresi karakter kosong akan diabaikan, kecuali telah melarikan diri.
g Ganti semua string yang cocok.
e Sebagai ekspresi string pengganti

Operator konversi

Berikut ini adalah pengubah operator konversi terkait:

pengubah deskripsi
c Konversi semua karakter tidak ditentukan
d Hapus semua karakter yang ditentukan
s Output yang sama menyusut ke sejumlah karakter

Contoh berikut variabel $ string dalam semua huruf kecil dikonversi ke huruf besar:

#!/usr/bin/perl 

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

print "$string\n";

Output program di atas adalah:

WELCOME TO w3big SITE.

Contoh berikut menggunakan / s variabel $ string karakter berulang dihapus:

#!/usr/bin/perl

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

print "$string\n";

Output program di atas adalah:

runob

contoh:

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

aturan ekspresi reguler lebih

ekspresi deskripsi
. Cocok dengan semua karakter kecuali baris
x? Pertandingan 0 atau string x
x * Pertandingan 0 kali atau lebih x string, tapi jumlah minimum yang mungkin cocok
x + Pertandingan 1 kali atau lebih x string, tapi jumlah minimum yang mungkin cocok
. * Pertandingan 0 kali atau lebih karakter apapun
. + Pertandingan 1 kali atau lebih dengan karakter apapun
{M} Sama persis dengan string tertentu dari m
{M, n} Cocok m atau lebih atau kurang tertentu tali n
{M,} Pertandingan m atau string lebih ditentukan
[] Yang cocok dengan karakter dalam []
[^] Pertandingan tidak memenuhi karakter dalam []
[0-9] Cocok dengan semua karakter numerik
[Az] Cocok dengan semua karakter alfabet huruf kecil
[^ 0-9] Cocok dengan semua karakter non-numerik
[^ Az] Cocok setiap karakter abjad huruf kecil
^ Sebuah karakter yang cocok awal
$ Cocok dengan karakter akhir karakter
\ D Cocok dengan karakter digit, dan [0-9] sintaks yang sama
\ D + Mencocokkan beberapa string numerik, dan [0-9] + sintaks sebagai
\ D Non-digital, yang lainnya dengan \ d
\ D + Non-digital, yang lainnya dengan \ d +
\ W Sebuah string dari huruf atau angka, dan [a-zA-Z0-9] sintaks sebagai
\ W + Dan [a-zA-Z0-9] + sintaks sebagai
\ W huruf non-Inggris atau angka, string, dan [^ a-zA-Z0-9] sintaks yang sama
\ W + Dan [^ a-zA-Z0-9] + sintaks sebagai
\ S Ruang, dan [\ n \ t \ r \ f] sintaks yang sama
\ S + Dan [\ n \ t \ r \ f] + sebagai
\ S Non-ruang, dan [^ \ n \ t \ r \ f] sintaks yang sama
\ S + Dan [^ \ n \ t \ r \ f] + sintaks sebagai
\ B huruf Inggris, angka batas string matching
\ B Cocok di abjad, batas tali numerik
a | b | c Sejalan dengan string karakter yang cocok dengan karakter atau b atau c karakter
abc Abc string matching (pattern) berisi () akan ingat simbol ini untuk menemukan string, itu adalah sintaks yang sangat berguna. Yang pertama String (dalam) menemukan variabel ini menjadi $ 1 atau \ 1 variabel, dan yang kedua (dalam) menemukan variabel string ke dalam variabel $ 2 atau \ 2, dan seterusnya ke bawah.
/ Pola / i i Parameter ini menunjukkan abaikan dalam bahasa Inggris, yaitu, ketika string pertandingan, mengabaikan pertanyaan kasus dalam bahasa Inggris. \ Jika Anda ingin menemukan karakter khusus dalam mode pola, seperti "*", harus menambahkan di depan karakter pada \ simbol, ini akan memungkinkan karakter khusus gagal