EnglishFrenchSpanyol

Favicon OnWorks

perlrebackslash - Dalam Talian di Awan

Jalankan perlrebackslash dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan perlrebackslash yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


perlrebackslash - Urutan dan Melarikan Ungkapan Biasa Perl

DESCRIPTION


Dokumentasi peringkat atas tentang ungkapan biasa Perl ditemui dalam perlre.

Dokumen ini menerangkan semua jujukan garis miring ke belakang dan melarikan diri. Selepas menerangkan peranan
garis miring ke belakang, ia menyenaraikan semua urutan yang mempunyai makna istimewa dalam Perl biasa
ungkapan (dalam susunan abjad), kemudian menerangkan setiap daripadanya.

Kebanyakan jujukan diterangkan secara terperinci dalam dokumen yang berbeza; tujuan utama ini
dokumen adalah untuk mempunyai panduan rujukan pantas yang menerangkan semua jujukan garis miring ke belakang dan melarikan diri.

. garis belakang
Dalam ungkapan biasa, garis miring ke belakang boleh melaksanakan salah satu daripada dua tugas: ia sama ada menghilangkan
makna istimewa watak yang mengikutinya (contohnya, "\|" sepadan dengan menegak
bar, ia bukan selang-seli), atau ia adalah permulaan garis miring ke belakang atau turutan melarikan diri.

Peraturan menentukan apakah ia adalah agak mudah: jika watak mengikuti
sengkang terbalik ialah aksara tanda baca (bukan perkataan) ASCII (iaitu, apa-apa sahaja yang bukan
huruf, digit, atau garis bawah), maka garis miring ke belakang hanya menghilangkan sebarang makna istimewa
watak yang mengikutinya.

Jika aksara yang mengikuti garis miring belakang ialah huruf ASCII atau digit ASCII, maka huruf
urutan mungkin istimewa; jika ya, ia disenaraikan di bawah. Beberapa huruf masih belum digunakan,
jadi melarikan diri mereka dengan garis miring ke belakang tidak mengubah mereka menjadi istimewa. Versi masa hadapan
Perl mungkin memberikan makna istimewa kepada mereka, jadi jika anda menghidupkan amaran, Perl mengeluarkan
amaran jika anda menggunakan urutan sedemikian. [1].

Walau bagaimanapun, ia dijamin bahawa garis miring ke belakang atau urutan melarikan diri tidak pernah mempunyai tanda baca
watak yang mengikuti garis miring ke belakang, bukan sekarang dan bukan dalam versi masa hadapan Perl 5. Jadi begitu
adalah selamat untuk meletakkan garis miring ke belakang di hadapan watak bukan perkataan.

Ambil perhatian bahawa garis miring terbalik itu sendiri adalah istimewa; jika anda ingin memadankan garis miring terbalik, anda perlu
escape the backslash with backslash: "/\\/" sepadan dengan satu backslash.

[1] Terdapat satu pengecualian. Jika anda menggunakan aksara abjad angka sebagai pembatas bagi anda
corak (yang mungkin anda tidak patut lakukan atas sebab kebolehbacaan), anda perlu melarikan diri
pembatas jika anda ingin memadankannya. Perl tidak akan memberi amaran kemudian. Lihat juga "Butiran buruk tentang
menghuraikan binaan yang dipetik" dalam perlop.

Semua yang urutan and melarikan diri
Yang tidak boleh digunakan dalam kelas aksara kurungan (seperti "[\da-z]") ditandakan sebagai "Tidak dalam
[]."

\000 Urutan pelarian oktal. Lihat juga \o{}.
\1 Rujukan belakang mutlak. Bukan dalam [].
\a Penggera atau loceng.
\A Permulaan rentetan. Bukan dalam [].
\b{}, \b Sempadan. (\b ialah ruang belakang dalam []).
\B{}, \B Bukan sempadan. Bukan dalam [].
\cX Kawalan-X.
\C oktet tunggal, walaupun di bawah UTF-8. Bukan dalam [].
(Tidak digunakan lagi)
\d Kelas aksara untuk digit.
\D Kelas aksara untuk bukan digit.
\e Watak melarikan diri.
\E Matikan pemprosesan \Q, \L dan \U. Bukan dalam [].
\f Suapan bentuk.
\F Sarung lipat sehingga \E. Bukan dalam [].
\g{}, \g1 Dinamakan, rujukan belakang mutlak atau relatif.
Bukan dalam [].
\G Pernyataan pos. Bukan dalam [].
\h Kelas aksara untuk ruang putih mendatar.
\H Kelas aksara untuk ruang putih bukan mendatar.
\k{}, \k<>, \k'' Dinamakan rujukan belakang. Bukan dalam [].
\K Simpan barang yang tinggal di \K. Bukan dalam [].
\l Huruf kecil aksara seterusnya. Bukan dalam [].
\L Huruf kecil hingga \E. Bukan dalam [].
\n (Logik) aksara baris baharu.
\N Sebarang watak kecuali baris baharu. Bukan dalam [].
\N{} Aksara atau jujukan bernama atau bernombor (Unicode).
\o{} Urutan pelarian oktal.
\p{}, \pP Aksara dengan sifat Unicode yang diberikan.
\P{}, \PP Aksara tanpa sifat Unicode yang diberikan.
\Q Sebutkan (lumpuhkan) metakarakter corak sehingga \E. tidak
dalam [].
\r Kembalikan watak.
\R Barisan baharu generik. Bukan dalam [].
\s Kelas aksara untuk ruang putih.
\S Kelas aksara untuk bukan ruang kosong.
\t Aksara tab.
\u Huruf tajuk aksara seterusnya. Bukan dalam [].
\Huruf besar hingga \E. Bukan dalam [].
\v Kelas aksara untuk ruang putih menegak.
\V Kelas aksara untuk ruang putih bukan menegak.
\w Kelas aksara untuk aksara perkataan.
\W Kelas aksara untuk aksara bukan perkataan.
\x{}, \x00 Urutan pelarian heksadesimal.
\X Unicode "kluster grafem lanjutan". Bukan dalam [].
\z Akhir rentetan. Bukan dalam [].
\Z Akhir rentetan. Bukan dalam [].

Watak Escapes
Tetap aksara

Segelintir watak mempunyai dedikasi watak melarikan diri. Jadual berikut menunjukkan mereka,
bersama dengan titik kod ASCII mereka (dalam perpuluhan dan hex), nama ASCII mereka, kawalan
melarikan diri pada platform ASCII dan penerangan ringkas. (Untuk platform EBCDIC, lihat "OPERATOR
PERBEZAAN" dalam perlebcdic.)

Seq. Kod Titik ASCII Cntrl Penerangan.
Dis Hex
\a 7 07 BEL \cG penggera atau loceng
\b 8 08 BS \cH ruang belakang [1]
\e 27 1B ESC \c[ watak melarikan diri
\f 12 0C FF \cL suapan bentuk
\n 10 0A LF \cJ suapan talian [2]
\r 13 0D CR \cM pemulangan gerabak
\t 9 09 TAB \cI tab

[1] "\b" ialah aksara ruang belakang hanya dalam kelas aksara. Di luar watak
kelas, "\b" sahaja ialah sempadan aksara perkataan/bukan aksara dan "\b{}" ialah beberapa
jenis sempadan yang lain.

[2] "\n" sepadan dengan baris baharu yang logik. Perl menukar antara "\n" dan asal OS anda
aksara baris baharu apabila membaca daripada atau menulis ke fail teks.

Contoh

$str =~ /\t/; # Padan jika $str mengandungi tab (mendatar).

Mengawal aksara

"\c" digunakan untuk menandakan aksara kawalan; watak berikut "\c" menentukan
nilai konstruk. Contohnya nilai "\cA" ialah b.c(1), dan nilai "\cb"
is b.c(2), dsb. Butiran berdarah terdapat dalam "Pengendali Seperti Sebut Harga Regexp" dalam perlop. A
senarai lengkap apa b.c(1), dsb. bermakna untuk platform ASCII dan EBCDIC adalah dalam "OPERATOR
PERBEZAAN" dalam perlebcdic.

Ambil perhatian bahawa "\c\" sahaja pada penghujung ungkapan biasa (atau rentetan petikan dua kali) bukan
sah. Serangan ke belakang mesti diikuti oleh watak lain. Iaitu, "\c\X" cara
"b.c(28) . 'X'" untuk semua watak X.

Untuk menulis kod bebas platform, anda mesti menggunakan "\N{NAMA}" sebaliknya, seperti "\N{ESCAPE}" atau
"\N{U+001B}", lihat nama aksara.

Mnemonik: cwatak ontrol.

Contoh

$str =~ /\cK/; # Padan jika $str mengandungi tab menegak (control-K).

Dinamakan or bernombor aksara and watak urutan

Aksara Unikod mempunyai nama Unikod dan nilai titik kod angka (ordinal). Menggunakan
Binaan "\N{}" untuk menentukan aksara oleh salah satu daripada nilai ini. Urutan tertentu daripada
watak juga mempunyai nama.

Untuk menentukan mengikut nama, nama watak atau urutan aksara pergi antara kerinting
pendakap gigi.

Untuk menentukan aksara mengikut titik kod Unicode, gunakan borang "\N{U+kod titik}", Di mana kod
titik ialah nombor dalam perenambelasan yang memberikan titik kod yang telah ditetapkan oleh Unicode
watak yang dikehendaki. Ia adalah kebiasaan tetapi tidak diperlukan untuk menggunakan sifar pendahuluan untuk mengalas
nombor hingga 4 digit. Oleh itu "\N{U+0041}" bermaksud "HURUF BESAR LATIN A", dan anda jarang akan
lihat ia ditulis tanpa dua sifar pendahuluan. "\N{U+0041}" bermaksud "A" walaupun pada EBCDIC
mesin (di mana nilai ordinal "A" bukan 0x41).

Malah mungkin untuk memberikan nama anda sendiri kepada watak dan urutan watak. Untuk
butiran, lihat nama azimat.

(Terdapat bentuk dalaman yang diperluas yang mungkin anda lihat dalam output nyahpepijat: "\N{U+kod
titik.kod titik...}". "..." bermaksud sebarang nombor ini kod titiks dipisahkan oleh titik.
Ini mewakili urutan yang dibentuk oleh watak-watak. Ini adalah bentuk dalaman sahaja,
tertakluk kepada perubahan, dan anda tidak seharusnya cuba menggunakannya sendiri.)

Mnemonik: Nwatak amed.

Ambil perhatian bahawa aksara atau jujukan aksara yang dinyatakan sebagai aksara bernama atau bernombor ialah
dianggap sebagai watak tanpa makna khusus oleh enjin regex, dan akan sepadan dengan "as
ialah".

Contoh

$str =~ /\N{WATAK THAI BEGITU}/; # Padan dengan watak Thai SO SO

gunakan nama amaran 'Cyrillic'; # Memuatkan nama Cyrillic.
$str =~ /\N{ZHE}\N{KA}/; # Padankan "ZHE" diikuti dengan "KA".

Octal melarikan diri

Terdapat dua bentuk pelarian oktal. Setiap satu digunakan untuk menentukan aksara dengan kodnya
titik yang dinyatakan dalam tatatanda perlapanan.

Satu bentuk, tersedia bermula dalam Perl 5.14 kelihatan seperti "\o{...}", di mana titik mewakili
satu atau lebih digit perlapanan. Ia boleh digunakan untuk mana-mana aksara Unicode.

Ia diperkenalkan untuk mengelakkan potensi masalah dengan bentuk lain, tersedia dalam semua
Perls. Bentuk itu terdiri daripada garis miring ke belakang diikuti dengan tiga digit perlapanan. Satu masalah
dengan borang ini ialah ia boleh kelihatan sama seperti rujukan belakang gaya lama (lihat
"Peraturan nyahkekaburan antara larian oktal gaya lama dan rujukan belakang" di bawah.) Anda boleh
elakkan perkara ini dengan menjadikan yang pertama daripada tiga digit sentiasa sifar, tetapi itu menjadikan \077 sebagai
titik kod terbesar boleh ditentukan.

Dalam sesetengah konteks, garis sengkang ke belakang diikuti oleh dua atau bahkan satu digit perlapanan boleh ditafsirkan
sebagai pelarian oktal, kadang-kadang dengan amaran, dan kerana beberapa pepijat, kadang-kadang dengan
keputusan yang mengejutkan. Juga, jika anda membuat regex daripada coretan yang lebih kecil
digabungkan bersama, dan anda menggunakan kurang daripada tiga digit, permulaan satu coretan
boleh ditafsirkan sebagai menambah digit pada penghujung coretan sebelum itu. Lihat "Mutlak
rujukan" untuk lebih banyak perbincangan dan contoh masalah coretan.

Ambil perhatian bahawa watak yang dinyatakan sebagai pelarian oktal dianggap sebagai watak tanpa
makna istimewa oleh enjin regex, dan akan sepadan dengan "seadanya".

Untuk meringkaskan, borang "\o{}" sentiasa selamat untuk digunakan dan bentuk lain selamat digunakan untuk
kod menunjuk melalui \077 apabila anda menggunakan tepat tiga digit untuk menentukannya.

Mnemonik: 0ctal atau octal.

Contoh (dengan mengandaikan platform ASCII)

$str = "Perl";
$str =~ /\o{120}/; # Padankan, "\120" ialah "P".
$str =~ /\120/; # Sama.
$str =~ /\o{120}+/; # Padanan, "\120" ialah "P",
# ia diulang sekurang-kurangnya sekali.
$str =~ /\120+/; # Sama.
$str =~ /P\053/; # Tiada padanan, "\053" ialah "+" dan diambil secara literal.
/\o{23073}/ # Latar depan hitam, latar belakang putih wajah tersenyum.
/\o{4801234567}/ # Menimbulkan amaran dan menghasilkan b.c(4).

Peraturan nyahkekaburan antara larian oktal gaya lama dan rujukan belakang

Melarikan diri oktal bagi bentuk "\000" di luar kelas aksara kurungan berpotensi bertembung
dengan rujukan belakang gaya lama (lihat "Rujukan mutlak" di bawah). Kedua-duanya terdiri daripada a
senduk belakang diikuti dengan nombor. Jadi Perl perlu menggunakan heuristik untuk menentukan sama ada ia adalah a
rujukan belakang atau pelarian oktal. Perl menggunakan peraturan berikut untuk menyahkekaburan:

1. Jika garis miring ke belakang diikuti dengan satu digit, ia adalah rujukan belakang.

2. Jika digit pertama yang mengikuti garis miring ke belakang ialah 0, ia adalah pelarian oktal.

3. Jika nombor yang mengikuti garis miring belakang ialah N (dalam perpuluhan), dan Perl sudah melihat N
kumpulan tangkap, Perl menganggap ini sebagai rujukan belakang. Jika tidak, ia menganggapnya sebagai
pelarian oktal. Jika N mempunyai lebih daripada tiga digit, Perl hanya mengambil tiga digit pertama untuk
pelarian oktal; selebihnya dipadankan sebagaimana adanya.

$pat saya = "(" x 999;
$tepuk .= "a";
$tepuk .= ")" x 999;
/^($pat)\1000$/; # Padanan 'aa'; terdapat 1000 kumpulan tangkap.
/^$pat\1000$/; # Padanan 'a@0'; terdapat 999 kumpulan tangkap
# dan \1000 dilihat sebagai \100 (a '@') dan '0'.

Anda boleh memaksa tafsiran rujukan belakang sentiasa dengan menggunakan borang "\g{...}". Awak boleh
memaksa tafsiran perlapanan sentiasa dengan menggunakan bentuk "\o{...}", atau untuk nombor ke atas
melalui \077 (= 63 perpuluhan), dengan menggunakan tiga digit, bermula dengan "0".

Perenambelasan melarikan diri

Seperti pelarian oktal, terdapat dua bentuk pelarian heksadesimal, tetapi kedua-duanya bermula dengan
urutan "\x". Ini diikuti oleh sama ada tepat dua digit perenambelasan membentuk a
nombor, atau nombor heksadesimal dengan panjang sewenang-wenangnya yang dikelilingi oleh pendakap kerinting. The
nombor perenambelasan ialah titik kod aksara yang anda ingin nyatakan.

Ambil perhatian bahawa watak yang dinyatakan sebagai salah satu daripada pelarian ini dianggap sebagai watak tanpa
makna istimewa oleh enjin regex, dan akan sepadan dengan "seadanya".

Mnemonik: diaxperpuluhan.

Contoh (dengan mengandaikan platform ASCII)

$str = "Perl";
$str =~ /\x50/; # Padankan, "\x50" ialah "P".
$str =~ /\x50+/; # Padankan, "\x50" ialah "P", ia diulang sekurang-kurangnya sekali
$str =~ /P\x2B/; # Tiada padanan, "\x2B" ialah "+" dan diambil secara literal.

/\x{2603}\x{2602}/ # Manusia salji dengan payung.
# Watak Unicode 2603 ialah manusia salji,
# aksara Unicode 2602 ialah payung.
/\x{263B}/ # Wajah tersenyum hitam.
/\x{263b}/ # Sama, digit heks A - F adalah tidak peka huruf besar-besaran.

Pengubah
Sebilangan urutan garis miring terbalik mempunyai kaitan dengan menukar aksara atau aksara
mengikuti mereka. "\l" akan huruf kecil aksara yang mengikutinya, manakala "\u" akan huruf besar
(atau, lebih tepat, huruf tajuk) watak yang mengikutinya. Mereka menyediakan fungsi
serupa dengan fungsi "lcfirst" dan "ucfirst".

Untuk huruf besar atau huruf kecil beberapa aksara, seseorang mungkin mahu menggunakan "\L" atau "\U", yang
akan huruf kecil/besar semua aksara yang mengikutinya, sehingga sama ada penghujung
corak atau kejadian seterusnya "\E", yang mana datang dahulu. Mereka menyediakan fungsi
serupa dengan apa yang disediakan oleh fungsi "lc" dan "uc".

"\Q" digunakan untuk memetik (melumpuhkan) corak metakarakter, sehingga "\E" seterusnya atau penghujung
corak itu. "\Q" menambah garis serong ke belakang pada mana-mana aksara yang mungkin mempunyai makna istimewa
Perl. Dalam julat ASCII, ia memetik setiap aksara yang bukan huruf, digit atau
garis bawah. Lihat "quotemeta" dalam perlfunc untuk mendapatkan butiran tentang perkara yang disebut untuk bukan ASCII
mata kod. Menggunakan ini memastikan bahawa mana-mana aksara antara "\Q" dan "\E" akan dipadankan
secara literal, tidak ditafsirkan sebagai metacharacter oleh enjin regex.

"\F" boleh digunakan untuk melipat semua aksara yang mengikuti, sehingga "\E" seterusnya atau penghujung
corak itu. Ia menyediakan fungsi yang serupa dengan fungsi "fc".

Mnemonik: Lkotak owercase, Uppercase, Fkes lama, Quotemeta, En.d.

Contoh

$sid = "sid";
$greg = "GrEg";
$miranda = "(Miranda)";
$str =~ /\u$sid/; # Perlawanan 'Sid'
$str =~ /\L$greg/; # Padanan 'greg'
$str =~ /\Q$miranda\E/; # Padan dengan '(Miranda)', seolah-olah coraknya
# telah ditulis sebagai /\(Miranda\)/

Watak kelas
Ungkapan biasa Perl mempunyai julat besar kelas aksara. Sebahagian daripada watak
kelas ditulis sebagai urutan garis miring ke belakang. Kami akan membincangkannya secara ringkas di sini; penuh
butiran kelas aksara boleh didapati dalam perlrecharclass.

"\w" ialah kelas aksara yang sepadan dengan mana-mana tunggal perkataan aksara (huruf, digit, Unicode
tanda, dan tanda baca penyambung (seperti garis bawah)). "\d" ialah kelas aksara yang
sepadan dengan mana-mana digit perpuluhan, manakala kelas aksara "\s" sepadan dengan mana-mana ruang putih
watak. Baharu dalam perl 5.10.0 ialah kelas "\h" dan "\v" yang sepadan dengan mendatar dan
aksara ruang putih menegak.

Set aksara tepat yang dipadankan dengan "\d", "\s", dan "\w" berbeza-beza bergantung pada pelbagai
pragma dan pengubahsuai ungkapan biasa. Ia adalah mungkin untuk mengehadkan perlawanan kepada
Julat ASCII dengan menggunakan pengubah suai ungkapan biasa "/a". Lihat perlrecharclass.

Varian huruf besar ("\W", "\D", "\S", "\H", dan "\V") ialah kelas aksara yang
padankan, masing-masing, mana-mana aksara yang bukan aksara perkataan, digit, ruang putih,
ruang putih mendatar, atau ruang putih menegak.

Mnemonik: wpesanan, digit, skadar, horizontal, vtegak.

Unicode kelas

"\pP" (di mana "P" ialah satu huruf) dan "\p{Property}" digunakan untuk memadankan aksara yang
sepadan dengan sifat Unicode yang diberikan; sifat termasuk perkara seperti "surat", atau "thai
aksara". Menggunakan huruf besar pada jujukan kepada "\PP" dan "\P{Property}" menjadikan jujukan itu sepadan
aksara yang tidak sepadan dengan sifat Unicode yang diberikan. Untuk butiran lanjut, lihat
"Jurutan garis belakang" dalam perlrecharclass dan "Sifat Aksara Unicode" dalam
perlunicode.

Mnemonik: property.

Rujukan
Jika menangkap kurungan digunakan dalam ungkapan biasa, kita boleh merujuk kepada bahagian
rentetan sumber yang telah dipadankan, dan padankan dengan perkara yang sama. Terdapat tiga cara
merujuk kepada yang demikian pilihan balik: secara mutlak, relatif, dan dengan nama.

Absolute rujukan

Sama ada "\gN" (bermula dalam Perl 5.10.0), atau "\N" (gaya lama) di mana N adalah positif
(tidak ditandatangani) nombor perpuluhan bagi sebarang panjang ialah rujukan mutlak kepada kumpulan penangkap.

N merujuk kepada set kurungan ke-N, jadi "\gN" merujuk kepada apa sahaja yang telah dipadankan oleh
set kurungan itu. Oleh itu "\g1" merujuk kepada kumpulan tangkapan pertama dalam regex.

"\gN" borang boleh ditulis secara bersamaan sebagai "\g{N}" yang mengelakkan kekaburan semasa membina
regex dengan menggabungkan rentetan yang lebih pendek. Sebaliknya jika anda mempunyai regex "qr/$a$b/", dan $a
mengandungi "\g1", dan $b mengandungi "37", anda akan mendapat "/\g137/" yang mungkin bukan apa
anda berniat.

Di dalam "\N" bentuk, N tidak boleh bermula dengan "0", dan mesti ada sekurang-kurangnya N menangkap
kumpulan, atau sebaliknya N dianggap sebagai pelarian oktal (tetapi sesuatu seperti "\18" adalah sama dengan
"\0018"; iaitu, pelarian oktal "\001" diikuti dengan digit tersurat "8").

Mnemonik: grompakan.

Contoh

/(\w+) \g1/; # Mencari perkataan pendua, (cth. "kucing kucing").
/(\w+) \1/; # Benda yang sama; tulisan ala lama.
/(.)(.)\g2\g1/; # Padankan palindrom empat huruf (cth. "ABBA").

Relatif rujukan

"\g-N" (bermula dalam Perl 5.10.0) digunakan untuk pengalamatan relatif. (Ia boleh ditulis sebagai
"\g{-N".) Ia merujuk kepada Nkumpulan ke-1 sebelum "\g{-N}".

Kelebihan besar borang ini ialah ia menjadikannya lebih mudah untuk menulis corak
rujukan yang boleh diinterpolasi dalam corak yang lebih besar, walaupun corak yang lebih besar juga
mengandungi kumpulan tangkapan.

Contoh

/(A) # Kumpulan 1
( # Kumpulan 2
(B) # Kumpulan 3
\g{-1} # Merujuk kepada kumpulan 3 (B)
\g{-3} # Merujuk kepada kumpulan 1 (A)
)
/x; # Padanan "ABBA".

$qr saya = qr /(.)(.)\g{-2}\g{-1}/; # Padanan 'abab', 'cdcd', dsb.
/$qr$qr/ # Padan dengan 'ababcdcd'.

Dinamakan rujukan

"\g{nama}" (bermula dalam Perl 5.10.0) boleh digunakan untuk merujuk kembali kepada kumpulan tangkap bernama,
mendispens sepenuhnya dengan perlu memikirkan kedudukan penampan penangkapan.

Untuk serasi dengan ungkapan biasa .Net, "\g{name}" juga boleh ditulis sebagai
"\k{nama}", "\k" atau "\k'nama'".

Untuk mengelakkan sebarang kekaburan, nama tidak boleh bermula dengan digit atau mengandungi tanda sempang.

Contoh

/(?\w+) \g{word}/ # Mencari perkataan pendua, (cth. "kucing kucing")
/(?\w+) \k{perkataan}/ # Sama.
/(?\w+) \k/ # Sama.
/(?.)(?.)\g{huruf1}\g{huruf2}/
# Padankan palindrom empat huruf (cth. "ABBA")

Ketegasan
Penegasan adalah syarat yang mesti benar; mereka sebenarnya tidak sepadan dengan bahagian
subrentetan. Terdapat enam penegasan yang ditulis sebagai urutan garis miring terbalik.

\A "\A" hanya sepadan pada permulaan rentetan. Jika pengubah suai "/m" tidak digunakan,
maka "/\A/" adalah bersamaan dengan "/^/". Walau bagaimanapun, jika pengubah suai "/m" digunakan, maka "/^/"
sepadan dengan baris baharu dalaman, tetapi maksud "/\A/" tidak diubah oleh "/m"
pengubahsuai. "\A" sepadan pada permulaan rentetan tanpa mengira sama ada "/m"
pengubahsuai digunakan.

\z, \Z
"\z" dan "\Z" sepadan pada penghujung rentetan. Jika pengubah suai "/m" tidak digunakan, maka
"/\Z/" bersamaan dengan "/$/"; iaitu, ia sepadan pada hujung rentetan, atau satu
sebelum baris baharu di hujung rentetan. Jika pengubah suai "/m" digunakan, maka "/$/"
sepadan dengan baris baharu dalaman, tetapi maksud "/\Z/" tidak diubah oleh "/m"
pengubahsuai. "\Z" sepadan pada penghujung rentetan (atau sejurus sebelum baris baharu yang mengekori)
tidak kira sama ada pengubah "/m" digunakan.

"\z" sama seperti "\Z", kecuali ia tidak sepadan sebelum baris baharu yang mengekori. "\z"
padanan pada penghujung rentetan sahaja, tanpa mengira pengubah yang digunakan, dan bukan hanya
sebelum baris baharu. Ia adalah cara untuk melabuhkan padanan ke hujung sebenar rentetan di bawah
semua syarat.

\G "\G" biasanya digunakan hanya dalam kombinasi dengan pengubah suai "/g". Jika pengubahsuai "/g".
digunakan dan padanan dilakukan dalam konteks skalar, Perl ingat di mana dalam sumber
rentetan perlawanan terakhir berakhir, dan kali seterusnya, ia akan memulakan perlawanan dari mana ia
tamat pada masa sebelumnya.

"\G" sepadan dengan titik di mana padanan sebelumnya pada rentetan itu berakhir, atau permulaan
daripada rentetan itu jika tiada padanan sebelumnya.

Mnemonik: Global.

\b{}, \b, \B{}, \B
"\b{...}", tersedia bermula dalam v5.22, sepadan dengan sempadan (antara dua aksara, atau
sebelum aksara pertama rentetan, atau selepas aksara akhir rentetan)
berdasarkan peraturan Unicode untuk jenis sempadan yang dinyatakan di dalam pendakap. The
jenis sempadan yang diketahui pada masa ini diberikan beberapa perenggan di bawah. "\B{...}" sepadan pada
mana-mana tempat antara aksara yang "\b{...}" daripada jenis yang sama tidak sepadan.

"\b" apabila tidak diikuti dengan segera oleh "{" padanan di mana-mana tempat antara perkataan
(sesuatu yang dipadankan dengan "\w") dan aksara bukan perkataan ("\W"); "\B" apabila tidak serta-merta
diikuti dengan padanan "{" di mana-mana tempat antara aksara yang "\b" tidak sepadan.
Untuk mendapatkan padanan perkataan yang lebih baik bagi teks bahasa semula jadi, lihat \b{wb} di bawah.

"\b" dan "\B" mengandaikan terdapat aksara bukan perkataan sebelum permulaan dan selepas
hujung rentetan sumber; jadi "\b" akan sepadan pada permulaan (atau akhir) sumber
rentetan jika rentetan sumber bermula (atau berakhir) dengan aksara perkataan. Jika tidak, "\B"
akan sepadan.

Jangan gunakan sesuatu seperti "\b=head\d\b" dan harapkan ia sepadan dengan permulaan a
barisan. Ia tidak boleh, kerana untuk ada sempadan sebelum bukan perkataan "=", di sana
mestilah watak perkataan serta-merta sebelumnya. Semua sempadan "\b" dan "\B" biasa
penentuan mencari aksara perkataan sahaja, bukan untuk aksara bukan perkataan mahupun untuk
rentetan berakhir. Ia mungkin membantu untuk memahami cara dan berfungsi dengan menyamakan mereka sebagai
ikut:

\b benar-benar bermaksud (?:(?<=\w)(?!\w)|(?<!\w)(?=\w))
\B benar-benar bermaksud (?:(?<=\w)(?=\w)|(?<!\w)(?!\w))

Sebaliknya, "\b{...}" dan "\B{...}" mungkin sepadan atau tidak pada awal dan akhir
garisan, bergantung pada jenis sempadan. Ini melaksanakan lalai Unicode
sempadan, dinyatakan dalam <http://www.unicode.org/reports/tr29/>. Jenis sempadan
tersedia pada masa ini ialah:

"\b{gcb}" atau "\b{g}"
Ini sepadan dengan Unikod "Sempadan Kelompok Graf". (Sebenarnya Perl selalu menggunakan
kelompok grafem "dilanjutkan" yang dipertingkatkan"). Ini diterangkan di bawah di bawah
""\X"". Sebenarnya, "\X" ialah cara lain untuk mendapatkan kefungsian yang sama. Ia adalah
bersamaan dengan "/.+?\b{gcb}/". Gunakan mana-mana yang paling sesuai untuk anda
keadaan.

"\b{sb}"
Ini sepadan dengan Unikod "Sempadan Ayat". Ini adalah bantuan untuk menghurai semula jadi
ayat bahasa. Ia memberikan hasil yang baik, tetapi tidak sempurna. Sebagai contoh, ia berfikir
bahawa "Mr. Smith" ialah dua ayat. Butiran lanjut ada di
<http://www.unicode.org/reports/tr29/>. Perhatikan juga bahawa ia berfikir bahawa apa-apa
memadankan "\R" (kecuali suapan borang dan tab menegak) ialah sempadan ayat.
"\b{sb}" berfungsi dengan teks yang direka untuk pemproses perkataan yang membalut baris
secara automatik untuk paparan, tetapi sempadan baris berkod keras dianggap sebagai
pada asasnya hujung blok teks (perenggan benar-benar), dan oleh itu penghujung
ayat. "\b{sb}" tidak berfungsi dengan baik dengan teks yang mengandungi baris baharu terbenam, seperti
teks sumber dokumen yang anda baca. Teks sedemikian perlu
diproses terlebih dahulu untuk menghilangkan pemisah baris sebelum mencari ayat
sempadan. Sesetengah orang melihat ini sebagai pepijat dalam standard Unicode, dan ini
tingkah laku agak tertakluk kepada perubahan dalam versi Perl akan datang.

"\b{wb}"
Ini sepadan dengan Unikod "Sempadan Kata". Ini memberikan yang lebih baik (walaupun tidak sempurna)
hasil untuk pemprosesan bahasa semula jadi daripada biasa "\b" (tanpa pendakap).
Sebagai contoh, ia memahami bahawa apostrof boleh berada di tengah-tengah perkataan dan
bahawa tanda kurungan bukan (lihat contoh di bawah). Butiran lanjut ada di
<http://www.unicode.org/reports/tr29/>.

Adalah penting untuk menyedari apabila anda menggunakan sempadan Unicode ini, yang anda ambil
risiko bahawa versi masa hadapan Perl yang mengandungi versi Unicode yang lebih baru
Standard tidak akan berfungsi dengan tepat dengan cara yang sama seperti semasa kod anda ditulis.
Peraturan ini tidak dianggap stabil dan agak tertakluk kepada perubahan
daripada Standard yang lain. Unicode berhak untuk menukarnya sesuka hati, dan
Perl berhak untuk mengemas kini pelaksanaannya kepada peraturan baharu Unicode. Di dalam
lalu, beberapa perubahan berlaku kerana aksara baharu telah ditambahkan pada Standard
yang mempunyai ciri-ciri yang berbeza daripada semua aksara sebelumnya, jadi peraturan baharu adalah
dirumus untuk mengendalikannya. Ini tidak sepatutnya menyebabkan sebarang keserasian ke belakang
isu. Tetapi beberapa perubahan telah mengubah perlakuan watak sedia ada kerana
Jawatankuasa Teknikal Unicode telah memutuskan bahawa perubahan itu wajar untuk apa-apa sahaja
sebab. Ini mungkin untuk membetulkan pepijat, atau kerana mereka berpendapat keputusan yang lebih baik diperolehi
dengan peraturan baru.

Ia juga penting untuk menyedari bahawa ini adalah definisi sempadan lalai, dan itu
pelaksanaan mungkin ingin menyesuaikan keputusan untuk tujuan dan tempat tertentu.

Unicode mentakrifkan jenis sempadan keempat, boleh diakses melalui Unicode::LineBreak
modul.

Mnemonik: bberbau.

Contoh

"kucing" =~ /\Acat/; # Padanan.
"kucing" =~ /cat\Z/; # Padanan.
"kucing\n" =~ /cat\Z/; # Padanan.
"kucing\n" =~ /cat\z/; # Tidak setanding.

"kucing" =~ /\bcat\b/; # Perlawanan.
"kucing" =~ /\bcat\b/; # Tidak setanding.
"kucing" =~ /\bcat\B/; # Tidak setanding.
"kucing" =~ /\bcat\B/; # Padanan.

manakala ("anjing kucing" =~ /(\w+)/g) {
cetak $1; # Mencetak 'catdog'
}
manakala ("anjing kucing" =~ /\G(\w+)/g) {
cetak $1; # Mencetak 'kucing'
}

my $s = "Dia berkata, \"Adakah pi 3.14? (Saya tidak pasti).\"";
print join("|", $s =~ m/ ( .+? \b ) /xg), "\n";
print join("|", $s =~ m/ ( .+? \b{wb} ) /xg), "\n";
cetakan
Dia| |berkata|, "|Adakah| |pi| |3|.|14|? (|Saya|'|m| |tidak| |pasti
Dia| |berkata|,| |"|Adakah| |pi| |3.14|?| |(|Saya| |tidak| |pasti|)|.|"

Lain-lain
Di sini kami mendokumenkan urutan garis miring ke belakang yang tidak termasuk dalam salah satu kategori di atas.
Ini adalah:

\C (Ditamatkan.) "\C" sentiasa sepadan dengan satu oktet, walaupun jika rentetan sumber dikodkan
dalam format UTF-8, dan aksara yang akan dipadankan ialah aksara berbilang oktet. Ini adalah
sangat berbahaya, kerana ia melanggar abstraksi watak logik dan boleh menyebabkan
Urutan UTF-8 menjadi cacat.

Gunakan "utf8::encode()" sebaliknya.

Mnemonik: oCtet.

\K Ini muncul dalam perl 5.10.0. Apa-apa yang dipadankan di kiri "\K" tidak disertakan dalam $& dan
tidak akan diganti jika corak digunakan dalam penggantian. Ini membolehkan anda menulis
"s/PAT1 \K PAT2/REPL/x" bukannya "s/(PAT1) PAT2/${1}REPL/x" atau "s/(?<=PAT1)
PAT2/REPL/x".

Mnemonik: Keep.

\N Ciri ini, tersedia bermula dalam v5.12, sepadan dengan mana-mana aksara tidak a
baris baru. Ia adalah tangan pendek untuk menulis "[^\n]", dan sama dengan "."
metasimbol, kecuali di bawah bendera "/s", yang mengubah makna ".", tetapi tidak
"\N".

Ambil perhatian bahawa "\N{...}" boleh bermaksud aksara bernama atau bernombor .

Mnemonik: Pelengkap daripada \n.

\R "\R" sepadan dengan a generik baris baru; iaitu apa-apa sahaja yang dianggap sebagai urutan putus baris oleh
Unicode. Ini termasuk semua aksara yang dipadankan dengan "\v" (ruang putih menegak), dan
jujukan berbilang aksara "\x0D\x0A" (pemulangan pengangkutan diikuti dengan suapan baris,
kadangkala dipanggil talian baharu rangkaian; ia adalah penghujung jujukan baris yang digunakan dalam Microsoft
fail teks dibuka dalam mod binari). "\R" bersamaan dengan "(?>\x0D\x0A|\v)". (The
sebab ia tidak berundur ialah urutan itu dianggap tidak dapat dipisahkan. Itu
bermakna

"\x0D\x0A" =~ /^\R\x0A$/ # Tiada padanan

gagal, kerana "\R" sepadan dengan keseluruhan rentetan, dan tidak akan berundur untuk dipadankan sahaja
"\x0D".) Memandangkan "\R" boleh memadankan jujukan lebih daripada satu aksara, ia tidak boleh
dimasukkan ke dalam kelas watak berkurung; "/[\R]/" ialah ralat; gunakan "\v" sebaliknya. "\R"
telah diperkenalkan dalam perl 5.10.0.

Ambil perhatian bahawa ini tidak menghormati mana-mana tempat yang mungkin berkuat kuasa; ia sepadan
mengikut set watak asli platform.

Mnemonik: tidak ada. "\R" telah dipilih kerana PCRE sudah menggunakan "\R", dan banyak lagi
yang penting kerana Unicode mengesyorkan metakarakter ungkapan biasa tersebut, dan
mencadangkan "\R" sebagai tatatandanya.

\X Ini sepadan dengan Unicode dilanjutkan grafik kelompok.

"\X" sepadan dengan baik dengan penggunaan biasa (bukan-Unicode-programmer) yang akan dipertimbangkan a
watak tunggal. Sebagai contoh, pertimbangkan G dengan beberapa jenis tanda diakritik, seperti
sebagai anak panah. Tiada aksara tunggal sedemikian dalam Unicode, tetapi satu boleh digubah oleh
menggunakan G diikuti dengan Unicode "MENGABUKKAN ANAK ANAK KE ATAS DI BAWAH", dan akan menjadi
dipaparkan oleh perisian Unicode-aware seolah-olah ia adalah satu aksara.

Perlawanan itu tamak dan tidak berundur, supaya gugusan itu tidak pernah dipecahkan
komponen yang lebih kecil.

Lihat juga "\b{gcb}".

Mnemonik: eXwatak Unicode cenderung.

Contoh

$str =~ s/foo\Kbar/baz/g; # Tukar mana-mana 'bar' berikutan 'foo' kepada 'baz'
$str =~ s/(.)\K\g1//g; # Padam aksara pendua.

"\n" =~ /^\R$/; # Padanan, \n ialah baris baharu generik.
"\r" =~ /^\R$/; # Padankan, \r ialah baris baharu generik.
"\r\n" =~ /^\R$/; # Padankan, \r\n ialah baris baharu generik.

"P\x{307}" =~ /^\X$/ # \X sepadan dengan P dengan titik di atas.

Gunakan perlrebackslash dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    OfficeFloor
    OfficeFloor
    OfficeFloor menyediakan penyongsangan bagi
    kawalan gandingan, dengan: - pergantungan
    suntikan - suntikan sambungan -
    suntikan benang Untuk maklumat lanjut
    melawat...
    Muat turun OfficeFloor
  • 2
    DivKit
    DivKit
    DivKit ialah sumber terbuka Didorong Pelayan
    Rangka kerja UI (SDUI). Ia membolehkan anda
    melancarkan kemas kini bersumberkan pelayan kepada
    versi aplikasi yang berbeza. Juga, boleh jadi
    terpakai untuk ...
    Muat turun DivKit
  • 3
    subconverter
    subconverter
    Utiliti untuk menukar antara pelbagai
    format langganan. Pengguna Shadowrocket
    harus menggunakan ss, ssr atau v2ray sebagai sasaran.
    Anda boleh menambah &remark= kepada
    HT yang disukai Telegram...
    Muat turun subconverter
  • 4
    SWASH
    SWASH
    SWASH ialah berangka tujuan umum
    alat untuk mensimulasikan goyah,
    bukan hidrostatik, permukaan bebas,
    fenomena aliran putaran dan pengangkutan
    di perairan pantai sebagai...
    Muat turun SWASH
  • 5
    VBA-M (Diarkib - Kini di Github)
    VBA-M (Diarkib - Kini di Github)
    Projek telah berpindah ke
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Ciri-ciri: Ciptaan menipu simpan statesmulti
    sistem, menyokong gba, gbc, gb, sgb,
    sgb2Tu...
    Muat turun VBA-M (Diarkib - Sekarang di Github)
  • 6
    Stacer
    Stacer
    Pengoptimum dan Pemantauan Sistem Linux
    Repositori Github:
    https://github.com/oguzhaninan/Stacer.
    Khalayak: Pengguna Akhir/Desktop. pengguna
    antara muka: Qt. Pengaturcaraan La...
    Muat turun Stacer
  • Lebih »

Arahan Linux

Ad