Ekspresi Biasa PHP / Regex: preg_match () - preg_replace ()

Isi kandungan:

Anonim

Apakah ungkapan biasa dalam PHP?

PHP Regular Expression juga dikenali sebagai regex adalah algoritma pemadanan corak yang kuat yang dapat dilakukan dalam satu ungkapan. Ungkapan biasa menggunakan operator aritmetik seperti (+, -, ^) untuk membuat ungkapan kompleks. Mereka dapat membantu anda menyelesaikan tugas seperti mengesahkan alamat e-mel, alamat IP dll.

Mengapa menggunakan ungkapan biasa

  • Ekspresi biasa PHP mempermudah mengenal pasti corak dalam data rentetan dengan memanggil satu fungsi. Ini menjimatkan masa pengekodan.
  • Semasa mengesahkan input pengguna seperti alamat e-mel, nama domain, nombor telefon, alamat IP,
  • Menonjolkan kata kunci dalam hasil carian
  • Semasa membuat templat HTML tersuai. Regex dalam PHP dapat digunakan untuk mengenal pasti tag templat dan menggantinya dengan data sebenar.

Dalam tutorial PHP Regex ini, anda akan belajar:

  • Fungsi Ungkapan Biasa terbina dalam PHP
  • Preg_match PHP ()
  • PHP Preg_split ()
  • PHP Preg_replace ()
  • Metakarakter Ungkapan Biasa
  • Menjelaskan corak

Fungsi Ungkapan Biasa terbina dalam PHP

PHP mempunyai fungsi bawaan yang memungkinkan kita bekerja dengan fungsi biasa yang akan kita pelajari dalam tutorial Ekspresi Biasa PHP ini. Mari lihat fungsi ekspresi biasa yang biasa digunakan dalam PHP.

  • preg_match () dalam PHP - fungsi ini digunakan untuk melakukan pemadanan corak dalam PHP pada rentetan. Ia kembali benar jika perlawanan dijumpai dan salah jika perlawanan tidak dijumpai.
  • preg_split () dalam PHP - fungsi ini digunakan untuk melakukan padanan pola pada rentetan dan kemudian membagi hasilnya menjadi array angka
  • preg_replace () dalam PHP - fungsi ini digunakan untuk melakukan padanan corak pada rentetan dan kemudian ganti padanan dengan teks yang ditentukan.

Berikut adalah sintaks untuk fungsi ungkapan biasa seperti PHP preg_match (), PHP preg_split () atau PHP preg_replace ().

DI SINI,

  • "function_name (…)" adalah PHP preg_match (), PHP preg_split () atau PHP preg_replace ().
  • "/… /" Garis bawah menunjukkan awal dan akhir fungsi penguji regex PHP kami
  • "'/ pattern /'" adalah corak yang perlu dipadankan
  • "subjek" adalah rentetan teks yang akan dipadankan

Sekarang mari kita lihat contoh praktikal yang melaksanakan fungsi regex PHP di atas.

Preg_match PHP ()

Contoh pertama menggunakan preg_match () dalam fungsi PHP untuk melakukan padanan corak sederhana untuk kata guru dalam URL yang diberikan.

Kod di bawah menunjukkan pelaksanaan fungsi penguji preg_match () untuk contoh di atas.

Semak imbas ke URL http: //localhost/phptuts/preg_match_simple.php

Mari kita periksa bahagian kod yang bertanggungjawab untuk output kita "preg_match ('/ guru /', $ my_url)" DI SINI,

  • "preg_match (…)" adalah fungsi regex PHP
  • "'/ guru /'" adalah corak ungkapan biasa yang akan dipadankan
  • "$ my_url" adalah pemboleh ubah yang mengandungi teks yang akan dipadankan.

Gambar rajah di bawah merangkum perkara di atas

PHP Preg_split ()

Sekarang mari kita lihat contoh lain yang menggunakan preg_split () dalam fungsi PHP.

Kami akan mengambil frasa rentetan dan meledakkannya menjadi pelbagai; corak yang hendak dipadankan ialah ruang tunggal.

Rentetan teks yang akan digunakan dalam contoh ini adalah "Saya Suka Ungkapan Biasa".

Kod di bawah menggambarkan pelaksanaan contoh di atas.

Semak imbas ke URL http: //localhost/phptuts/preg_split.php

PHP Preg_replace ()

Sekarang mari kita lihat preg_replace () dalam fungsi PHP yang melakukan padanan corak dan kemudian mengganti corak dengan yang lain.

Kod di bawah mencari kata guru dalam rentetan.

Ia menggantikan kata guru dengan kata guru yang dikelilingi oleh kod css yang menonjolkan warna latar belakang.

Dengan andaian anda telah menyimpan fail preg_replace.php, penyemak imbas ke URL http: //localhost/phptuts/preg_replace.php

Metakarakter Ungkapan Biasa

Contoh di atas menggunakan corak yang sangat asas; metakarakter hanya membolehkan kita melakukan padanan corak yang lebih kompleks seperti menguji kesahihan alamat e-mel. Sekarang mari kita lihat metakarakter yang biasa digunakan.

Metakarakter Penerangan Contohnya
. Memadankan mana-mana watak kecuali baris baru /./ memadankan apa sahaja yang mempunyai satu watak
^ Sesuai dengan permulaan atau rentetan / tidak termasuk watak / PH / memadankan sebarang rentetan yang bermula dengan PH
$ Corak padanan di hujung rentetan / com $ / sesuai dengan guru99.com, yahoo.com dll.
* Memadankan sebarang sifar (0) atau lebih aksara / com * / sepadan dengan komputer, komunikasi dll.
+ Memerlukan watak sebelumnya muncul sekurang-kurangnya sekali / yah + oo / sepadan dengan yahoo
\ Digunakan untuk melarikan watak meta /yahoo+\.com/ memperlakukan titik sebagai nilai literal
[…] Kelas watak / [abc] / padanan abc
az Memadankan huruf kecil / az / padanan sejuk, gembira dll.
AZ Memadankan huruf besar / AZ / sepadan dengan APA, BAGAIMANA, MENGAPA dll.
0-9 Memadankan sebarang nombor antara 0 dan 9 / 0-4 / perlawanan 0,1,2,3,4

Senarai di atas hanya memberikan metakarakter yang paling biasa digunakan dalam ungkapan biasa.

Sekarang mari kita lihat contoh yang cukup kompleks yang memeriksa kesahihan alamat e-mel.

Menjelaskan corak "[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] "

DI SINI,

  • "'/ ... /'" bermula dan mengakhiri ungkapan biasa
  • "[a-zA-Z0-9 ._-]" sesuai dengan huruf kecil atau huruf besar, angka antara 0 dan 9 dan titik, garis bawah atau tanda hubung.
  • "+ @ [a-zA-Z0-9-]" sesuai dengan simbol @ diikuti dengan huruf kecil atau huruf besar, angka antara 0 dan 9 atau tanda hubung.
  • "+ \. [a-zA-Z.] {2,5} $ /" melepaskan titik dengan garis miring terbalik kemudian memadankan mana-mana huruf kecil atau huruf besar dengan panjang watak antara 2 dan 5 di hujung rentetan.

Semak imbas ke URL http: //localhost/phptuts/preg_match.php

Seperti yang anda dapat lihat dari pecahan contoh di atas, watak-watak metacharacter sangat kuat dalam hal pola yang sepadan.

Ringkasan

  • Ungkapan Biasa atau Regex dalam PHP adalah algoritma padanan corak
  • Ungkapan biasa sangat berguna ketika melakukan pemeriksaan pengesahan, membuat sistem templat HTML yang mengenali tag dll.
  • PHP telah membina fungsi-fungsi iaitu PHP preg_match (), PHP preg_split () dan PHP preg_replace () yang menyokong ungkapan biasa.
  • Metakarakter membolehkan kita membuat corak yang kompleks