Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan Biasa PHP

Ungkapan Biasa PHP

PHPz
PHPzasal
2024-08-29 13:01:52399semak imbas

Ungkapan biasa boleh ditakrifkan sebagai algoritma padanan corak yang dijana dalam satu baris. Ini memberi kesan sekiranya semakan pengesahan dan untuk pengecaman templat. Aksara meta membolehkan pengguna mengendalikan corak yang kompleks. Oleh itu sokongan dalam PHP untuk ekspresi biasa membantu meningkatkan kualiti kod pengaturcaraan PHP. Sebarang ungkapan biasa ialah corak generik atau urutan set aksara yang digunakan untuk menyediakan kefungsian padanan corak terhadap rentetan subjek tertentu. Ia juga dikenali sebagai RegExp atau RegEx. Ia juga dianggap sebagai bahasa pengaturcaraan kecil berasaskan tatatanda corak untuk digunakan untuk penghuraian rentetan teks.

IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

2 Set Ungkapan Biasa dalam Fungsi PHP

Diberikan di bawah menyokong 2 set ungkapan biasa:

  • Ungkapan Biasa POSIX
  • Ungkapan Biasa Gaya PERL

1. Ungkapan Biasa POSIX

Ini ditakrifkan sebagai set aksara yang mana mana-mana aksara tunggalnya perlu dipadankan daripada rentetan input. Ungkapan ini ditakrifkan dalam [].

Contoh:

  • [0-9]: Ini direka bentuk untuk menapis sebarang rentetan perpuluhan dari 0 hingga 9.
  • [a-Z]: Ini direka bentuk untuk menapis sebarang aksara daripada huruf kecil 'a' hingga huruf besar 'Z'.

Untuk menjadikan penapis menjadi lebih khusus, sintaks standard, termasuk regex dan aksara khas dibangunkan yang dikenali sebagai Pengkuantiti. Ia juga menyediakan maklumat mengenai kekerapan iaitu bilangan kejadian atau kejadian aksara dalam kurungan atau sekumpulan aksara dan kuantiti.

Jadual untuk mengetahui perihalan bagi pengkuantiti yang berbeza:

Quantifier Description
S+ Filters out a string having at least one ‘s’.
S* Filters out a string having zero or more ‘s’.
S? Filters out a string having zero or one ‘s’.
S{N} Filters out a string having a sequence of N ‘s’.
S$ Filters out a string having ‘s’ at the end.
^S Filters out a string having ‘s’ at the beginning.
Pengkuantiti

Penerangan

S+ Menapis rentetan yang mempunyai sekurang-kurangnya satu ‘s’. S* Menapis rentetan yang mempunyai sifar atau lebih ‘s’. S? Menapis rentetan yang mempunyai sifar atau satu ‘s’. S{N} Menapis rentetan yang mempunyai jujukan N ‘s’. S$ Menapis rentetan yang mempunyai ‘s’ di hujungnya. ^S Menapis rentetan yang mempunyai ‘s’ pada permulaan. PHP juga menyokong kefungsian padanan berkenaan dengan julat aksara/kelas yang dipratentukan.
predefined character class Description
[[:space:]] Filters out a string having a space.
[[:alpha:]] Filters out a string having alphabetic characters a-A through z-Z.
[[:digit:]] Filters out a string having numerical 0 to 9.
[[:alnum:]] Filters out a string having alphanumeric characters a-A through z-Z and numerical 0 to 9.
Contoh: kelas aksara pratakrif Penerangan [[:space:]] Menapis rentetan yang mempunyai ruang. [[:alpha:]] Menapis rentetan yang mempunyai aksara abjad a-A hingga z-Z. [[:digit:]] Menapis rentetan yang mempunyai berangka 0 hingga 9. [[:alnum:]] Menapis rentetan yang mempunyai aksara abjad angka a-A hingga z-Z dan berangka 0 hingga 9.

Untuk regex POSIX, PHP menggabungkan pelbagai fungsi untuk menjalankan pelbagai operasi menggunakan Regex gaya POSIX.

Fungsi diterangkan seperti yang ditunjukkan dalam jadual di bawah:

POSIX Regex function Description
ereg() Used to search a string specified by or by pattern and to return true if the matching is found.
ereg_replace() Used to search a string specified by or by pattern and replace with replacement if the matching is found.
eregi() Used to perform non-case sensitive search for a string specified by or by pattern and to return true if the matching is found.
eregi_replace() Used to perform non-case sensitive for a string specified by or by pattern and replace with replacement if the matching is found.
split() Used to divide the string into separate elements based on boundaries that matches the searching pattern.
spliti() Used to perform non-case sensitive for the string to divide it into separate elements based on boundaries that matches the searching pattern.
sql_regcase() A utility function that convert each character from the input value into a bracketed expression making two characters.

2. Ungkapan Biasa Gaya PERL

Corak Regex jenis ini serupa dengan regex POSIX tetapi dibuat dengan aksara meta dan pengecam. Sintaks untuk Regex ini boleh ditukar ganti dengan gaya POSIX.

a. Aksara meta: Watak abjad yang didahului dengan garis sengkang ke belakang yang mewakili makna tertentu dikenali sebagai aksara Meta.

Terdapat pelbagai aksara meta yang disokong dalam skrip PHP, digunakan sebagai Regex jenis Perl seperti yang dibincangkan di bawah:

Meta character Description
. Single character
d A digit character
D Non-digit character
s white space character e.g. SPACE, NEW LINE, TAB
S Non- white space character
w A word character
W Non-word character
[aeiou] Filters the matched character out of the given set
[^aeiou] Filters the unmatched character out of the given set
(set1|set2|set3) Filters the matched element that matches to any of the given alternatives
Watak meta

Penerangan . Watak tunggal d Aksara digit D Aksara bukan digit s aksara ruang putih cth. RUANG, BARIS BARU, TAB S Watak ruang bukan putih w Aksara perkataan W Aksara bukan perkataan [aeiou] Menapis aksara yang dipadankan daripada set yang diberikan [^aeiou] Menapis aksara yang tidak sepadan daripada set yang diberikan (set1|set2|set3) Menapis elemen yang dipadankan yang sepadan dengan mana-mana alternatif yang diberikan

b. Pengubah suai:

Elemen ini membolehkan pengguna memanfaatkan fleksibiliti tambahan untuk bekerja dengan regexp.
Modifier Description
g Finds matchings globally.
cg Enable continue global search even after matching fails.
i Instructs to perform case insensitive search.
s Use the character ‘.’ to search for new line character.
m In case of input string containing new line or carriage return character, ‘^’ and ‘$’ are used to match for new line boundary.
x Permits to use white space to improve the clarity of the expression.
o Restrict the evaluation of the expression to occur only once.
Pelbagai pengubah suai dan fungsinya disebut dalam jadual yang diberikan di bawah: Pengubah suai Penerangan g Mencari padanan secara global. cg Dayakan meneruskan carian global walaupun selepas pemadanan gagal. i Mengarahkan untuk melakukan carian tidak peka huruf besar-besaran. s Gunakan aksara ‘.’ untuk mencari aksara baris baharu. m Sekiranya rentetan input mengandungi baris baharu atau aksara pengembalian gerabak, ‘^’ dan ‘$’ digunakan untuk memadankan sempadan baris baharu. x Membenarkan untuk menggunakan ruang putih untuk meningkatkan kejelasan ungkapan. o Hadkan penilaian ungkapan berlaku sekali sahaja.

Serupa dengan fungsi regex POSIX, PHP juga menawarkan beberapa fungsi khusus yang serasi dengan regex gaya PERL.

Beberapa fungsi utama dibincangkan seperti di bawah:

PERL style regexpcompitable function Description
preg_match() Return the first occurrence of the matching pattern.
preg_match_all() Return all occurrences of the matching pattern.
preg_split() Splits the string input into several elements based on the given regexp pattern as input.
Preg_quote() Used to quote the characters of the regex.
preg_grep() Used to find all the matching elements from array input.
preg_replace() Used to find matching element and replace it with the given replacement.

Contoh Ungkapan Biasa PHP

Contoh di bawah menunjukkan aplikasi

Coretan kod direka bentuk untuk mengimbas melalui rentetan input dan memisahkan input yang diberikan kepada berbilang elemen dengan mentakrifkan Regex yang diberikan sebagai sempadan.

Kod:

<?php
// Declaring a regex
$regex = "([0-9]+)";
// Defining the input string
$inputstr = "String_a 1 String_b 2 String_c 3";
//Splitting the input string based on matching regex expression
$result = preg_split ($regex, $inputstr);
// Displaying result
echo $result[0];
echo "\n";
echo $result[1];
echo "\n";
echo $result[2];
echo "\n";
?>

Output

Fungsi preg_split() telah membahagikan rentetan input kepada 3 bahagian kerana elemen '1', '2 dan '3' ditandakan sebagai sempadan.

Ungkapan Biasa PHP

Atas ialah kandungan terperinci Ungkapan Biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Pemalar Ajaib PHPArtikel seterusnya:Pemalar Ajaib PHP