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-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Diberikan di bawah menyokong 2 set ungkapan biasa:
Ini ditakrifkan sebagai set aksara yang mana mana-mana aksara tunggalnya perlu dipadankan daripada rentetan input. Ungkapan ini ditakrifkan dalam [].
Contoh:
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. |
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. |
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. |
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 |
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. |
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 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.
Atas ialah kandungan terperinci Ungkapan Biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!