PHP - Ekspresi Reguler
Ekspresi reguler tidak lebih dari urutan atau pola karakter itu sendiri. Mereka menyediakan dasar untuk fungsionalitas pencocokan pola.
Menggunakan ekspresi reguler, Anda dapat mencari string tertentu di dalam string lain, Anda dapat mengganti satu string dengan string lain, dan Anda dapat membagi string menjadi banyak potongan.
PHP menawarkan fungsi khusus untuk dua set fungsi ekspresi reguler, masing-masing sesuai dengan jenis ekspresi reguler tertentu. Anda dapat menggunakan salah satunya berdasarkan kenyamanan Anda.
- Ekspresi Reguler POSIX
- PERL Style Regular Expressions
Ekspresi Reguler POSIX
Struktur ekspresi reguler POSIX tidak berbeda dengan ekspresi aritmatika pada umumnya: berbagai elemen (operator) digabungkan untuk membentuk ekspresi yang lebih kompleks.
Ekspresi reguler paling sederhana adalah ekspresi yang cocok dengan satu karakter, seperti g, di dalam string seperti g, haggle, atau bag.
Mari kita beri penjelasan untuk beberapa konsep yang digunakan dalam ekspresi reguler POSIX. Setelah itu kami akan memperkenalkan Anda dengan fungsi terkait ekspresi reguler.
Tanda kurung
Tanda kurung ([]) memiliki arti khusus jika digunakan dalam konteks ekspresi reguler. Mereka digunakan untuk menemukan berbagai karakter.
Sr Tidak | Ekspresi & Deskripsi |
---|---|
1 | [0-9] Ini cocok dengan digit desimal apa pun dari 0 hingga 9. |
2 | [a-z] Ini cocok dengan semua karakter dari huruf kecil a sampai huruf kecil z. |
3 | [A-Z] Itu cocok dengan semua karakter dari huruf besar A sampai huruf besar Z. |
4 | [a-Z] Ini cocok dengan semua karakter dari huruf kecil a sampai huruf besar Z. |
Rentang yang ditunjukkan di atas bersifat umum; Anda juga dapat menggunakan rentang [0-3] untuk mencocokkan digit desimal apa pun mulai dari 0 hingga 3, atau rentang [bv] untuk mencocokkan karakter huruf kecil apa pun mulai dari b hingga v.
Pengukur
Frekuensi atau posisi rangkaian karakter dalam tanda kurung dan karakter tunggal dapat dilambangkan dengan karakter khusus. Setiap karakter khusus memiliki konotasi tertentu. Tanda +, *,?, {Int. range}, dan $ flags semuanya mengikuti urutan karakter.
Sr Tidak | Ekspresi & Deskripsi |
---|---|
1 | p+ Ini cocok dengan string apa pun yang mengandung setidaknya satu p. |
2 | p* Ini cocok dengan string apa pun yang mengandung nol atau lebih p. |
3 | p? Ini cocok dengan string apa pun yang berisi nol atau satu p. |
4 | p{N} Ini cocok dengan string apa pun yang berisi urutan N p |
5 | p{2,3} Ini cocok dengan string apa pun yang berisi urutan dua atau tiga p. |
6 | p{2, } Ini cocok dengan string apa pun yang berisi urutan setidaknya dua p. |
7 | p$ Ini cocok dengan string apa pun dengan p di ujungnya. |
8 | ^p Ini cocok dengan string apa pun dengan p di awalnya. |
Contoh
Contoh berikut akan menjelaskan konsep Anda tentang mencocokkan karakter.
Sr Tidak | Ekspresi & Deskripsi |
---|---|
1 | [^a-zA-Z] Ini cocok dengan string apa pun yang tidak berisi karakter apa pun mulai dari a hingga z dan A hingga Z. |
2 | p.p Ini cocok dengan string apa pun yang mengandung p, diikuti oleh karakter apa pun, pada gilirannya diikuti oleh p lain. |
3 | ^.{2}$ Ini cocok dengan string apa pun yang berisi tepat dua karakter. |
4 | <b>(.*)</b> Ini cocok dengan semua string yang diapit dalam <b> dan </b>. |
5 | p(hp)* Ini cocok dengan string apa pun yang berisi ap diikuti dengan nol atau lebih instance dari urutan php. |
Rentang Karakter Standar
Untuk kenyamanan pemrograman Anda beberapa rentang karakter yang telah ditentukan, juga dikenal sebagai kelas karakter, tersedia. Kelas karakter menentukan seluruh rentang karakter, misalnya, alfabet atau set integer -
Sr Tidak | Ekspresi & Deskripsi |
---|---|
1 | [[:alpha:]] Ini cocok dengan string apa pun yang berisi karakter alfabet aA hingga zZ. |
2 | [[:digit:]] Ini cocok dengan string apa pun yang berisi digit numerik 0 hingga 9. |
3 | [[:alnum:]] Ini cocok dengan string apa pun yang berisi karakter alfanumerik aA hingga zZ dan 0 hingga 9. |
4 | [[:space:]] Itu cocok dengan string apa pun yang berisi spasi. |
Fungsi Regexp POSIX PHP
PHP saat ini menawarkan tujuh fungsi untuk mencari string menggunakan ekspresi reguler gaya POSIX -
Sr Tidak | Deskripsi fungsi |
---|---|
1 | ereg () Fungsi ereg () mencari string yang ditentukan oleh string untuk string yang ditentukan oleh pola, mengembalikan true jika pola ditemukan, dan false sebaliknya. |
2 | ereg_replace () Fungsi ereg_replace () mencari string yang ditentukan oleh pola dan mengganti pola dengan penggantian jika ditemukan. |
3 | eregi () Fungsi eregi () mencari di seluruh string yang ditentukan oleh pola untuk string yang ditentukan oleh string. Pencarian tidak peka huruf besar / kecil. |
4 | eregi_replace () Fungsi eregi_replace () beroperasi persis seperti ereg_replace (), kecuali bahwa pencarian pola dalam string tidak peka huruf besar / kecil. |
5 | membagi() Fungsi split () akan membagi sebuah string menjadi berbagai elemen, batasan tiap elemen berdasarkan kemunculan pola dalam string. |
6 | spliti () Fungsi spliti () beroperasi persis dengan cara yang sama seperti saudara kandungnya split (), kecuali bahwa itu tidak peka huruf besar kecil. |
7 | sql_regcase () Fungsi sql_regcase () dapat dianggap sebagai fungsi utilitas, mengubah setiap karakter dalam string parameter input menjadi ekspresi tanda kurung yang berisi dua karakter. |
PERL Style Regular Expressions
Ekspresi reguler gaya Perl mirip dengan padanan POSIX mereka. Sintaks POSIX dapat digunakan hampir secara bergantian dengan fungsi ekspresi reguler gaya Perl. Faktanya, Anda dapat menggunakan bilangan apa pun yang diperkenalkan di bagian POSIX sebelumnya.
Mari kita beri penjelasan untuk beberapa konsep yang digunakan dalam ekspresi reguler PERL. Setelah itu kami akan memperkenalkan Anda dengan fungsi terkait ekspresi reguler.
Karakter meta
Karakter meta hanyalah karakter alfabet yang diawali dengan garis miring terbalik yang berfungsi untuk memberi kombinasi arti khusus.
Misalnya, Anda dapat mencari sejumlah besar uang menggunakan karakter meta '\ d': /([\d]+)000/, Sini \d akan mencari string karakter numerik apa pun.
Berikut adalah daftar karakter meta yang dapat digunakan dalam PERL Style Regular Expressions.
Character Description
. a single character
\s a whitespace character (space, tab, newline)
\S non-whitespace character
\d a digit (0-9)
\D a non-digit
\w a word character (a-z, A-Z, 0-9, _)
\W a non-word character
[aeiou] matches a single character in the given set
[^aeiou] matches a single character outside the given set
(foo|bar|baz) matches any of the alternatives specified
Pengubah
Beberapa pengubah tersedia yang dapat membuat pekerjaan Anda dengan regex lebih mudah, seperti sensitivitas huruf, mencari dalam beberapa baris, dll.
Modifier Description
i Makes the match case insensitive
m Specifies that if the string has newline or carriage
return characters, the ^ and $ operators will now
match against a newline boundary, instead of a
string boundary
o Evaluates the expression only once
s Allows use of . to match a newline character
x Allows you to use white space in the expression for clarity
g Globally finds all matches
cg Allows a search to continue even after a global match fails
Fungsi Kompatibel Regexp PERL PHP
PHP menawarkan fungsi berikut untuk mencari string menggunakan ekspresi reguler yang kompatibel dengan Perl -
Sr Tidak | Deskripsi fungsi |
---|---|
1 | preg_match () Fungsi preg_match () mencari string untuk pola, mengembalikan true jika pola ada, dan false sebaliknya. |
2 | preg_match_all () Fungsi preg_match_all () cocok dengan semua kemunculan pola dalam string. |
3 | preg_replace () Fungsi preg_replace () beroperasi seperti ereg_replace (), kecuali bahwa ekspresi reguler dapat digunakan dalam pola dan parameter input pengganti. |
4 | preg_split () Fungsi preg_split () beroperasi persis seperti split (), kecuali ekspresi reguler diterima sebagai parameter masukan untuk pola. |
5 | preg_grep () Fungsi preg_grep () mencari semua elemen input_array, mengembalikan semua elemen yang cocok dengan pola regexp. |
6 | preg_ quote () Kutip karakter ekspresi reguler |