Rumah >pembangunan bahagian belakang >tutorial php >Kaedah ungkapan biasa PHP untuk mengesahkan sama ada teks mengandungi rentetan tertentu

Kaedah ungkapan biasa PHP untuk mengesahkan sama ada teks mengandungi rentetan tertentu

王林
王林asal
2023-06-24 08:29:522559semak imbas

Dalam pembangunan PHP, selalunya perlu untuk menyemak sama ada rentetan mengandungi subrentetan tertentu, seperti menentukan sama ada alamat e-mel mengandungi simbol "@" atau sama ada kata laluan memenuhi peraturan tertentu. Antaranya, ungkapan biasa adalah kaedah yang biasa digunakan yang boleh mendapatkan hasil yang diperlukan dengan cepat dan tepat. Oleh itu, artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada teks mengandungi rentetan tertentu.

1. Pengenalan kepada ungkapan biasa

Sebelum memperkenalkan kaedah khusus, mari kita perkenalkan secara ringkas konsep asas ungkapan biasa.

Ungkapan Biasa (Regex) ialah bahasa yang digunakan untuk menerangkan, memadankan dan menggantikan teks. Menggunakan ungkapan biasa, anda boleh mencari rentetan sasaran dengan cepat daripada satu atau lebih segmen teks, atau melakukan operasi seperti memotong dan menggantikan rentetan. Ungkapan biasa terdiri daripada beberapa simbol khas dan aksara biasa, dan susunan serta gabungan setiap komponen mematuhi peraturan tertentu.

Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mencari rentetan yang memenuhi syarat melalui fungsi preg_match(). Penggunaan khusus ialah:

preg_match($pattern, $subject, $matches);

Antaranya, $pattern ialah rentetan ungkapan biasa, $subject ialah rentetan sumber untuk dipadankan dan $matches ialah parameter pilihan yang digunakan untuk menyimpan hasil padanan.

2 Gunakan ungkapan biasa untuk menentukan sama ada teks mengandungi rentetan tertentu

Berikut mengambil contoh untuk menentukan sama ada alamat e-mel mengandungi simbol "@" untuk memperkenalkan cara menggunakan ungkapan biasa untuk mengesahkan teks Mengandungi rentetan tertentu.

  1. Tentukan ungkapan biasa

Dalam contoh ini, anda hanya perlu mencari sama ada rentetan sumber mengandungi simbol "@", jadi anda boleh menggunakan ungkapan biasa yang mudah untuk Lengkapkan perlawanan:

$pattern = '/@/';

Antaranya, aksara pada permulaan dan akhir garis miring ialah pembatas bagi ungkapan biasa dan aksara "@" di antara mereka mewakili rentetan sasaran yang sepadan.

  1. Panggil fungsi preg_match() untuk memadankan data sasaran

Seterusnya, anda boleh memanggil fungsi preg_match() untuk pemadanan:

$email = "example@example.com";
if (preg_match($pattern, $email)) {
    echo "该邮箱地址包含@符号!";
} else {
    echo "该邮箱地址不包含@符号!";
}

In kod di atas, Pembolehubah e-mel menyimpan rentetan sasaran Jika perlawanan berjaya, "Alamat e-mel mengandungi simbol @ jika tidak, "Alamat e-mel tidak mengandungi simbol @!"

3. Gunakan pelayakkan dalam ungkapan biasa

Dalam contoh di atas, ungkapan biasa mudah digunakan, yang hanya boleh memenuhi keperluan pemadanan paling asas. Jika anda perlu meningkatkan ketepatan perlawanan, anda boleh menggunakan kelayakan. Kelayakan

digunakan untuk mengawal bilangan kemunculan aksara dalam ungkapan biasa. Contohnya, anda boleh menggunakan * (sifar atau lebih aksara), + (satu atau lebih aksara), dan ? (sifar atau satu aksara) untuk mengawal bilangan subrentetan sasaran. Penggunaan khusus adalah seperti berikut:

  • : mewakili sifar atau lebih aksara, contohnya, /a/ boleh memadankan 0 atau lebih a.
  • +: Menunjukkan satu atau lebih aksara, contohnya /a+/ boleh memadankan 1 atau lebih a.
  • ?: Menunjukkan sifar atau satu aksara, contohnya /a?/ boleh memadankan 0 atau 1 a.
  • {n}: mewakili n aksara, contohnya /a{2}/ boleh memadankan dua a.
  • {n,}: mewakili n atau lebih aksara, contohnya /a{2,}/ boleh memadankan dua atau lebih a.
  • {n,m}: mewakili n kepada m aksara, contohnya /a{2,3}/ boleh memadankan 2 atau 3 a.

Menggunakan kelayakan di atas, anda boleh memadankan rentetan sasaran dengan lebih terperinci. Sebagai contoh, tentukan sama ada kata laluan mengandungi sekurang-kurangnya satu huruf besar dan satu nombor:

$pattern = '/^(?=.*[A-Z])(?=.*d).+$/';
$password = "Abc123";
if (preg_match($pattern, $password)) {
    echo "该密码符合规则!";
} else {
    echo "该密码不符合规则!";
}

Dalam kod di atas, ungkapan biasa /^(?=.[A-Z])(?=.d).+$/, di mana:

  • ^ bermaksud mengehadkan kedudukan permulaan perlawanan;
  • (?=.*[A-Z]) bermakna ia mesti mengandungi di sekurang-kurangnya satu huruf besar Huruf;
  • (?=.*d) bermakna ia mesti mengandungi sekurang-kurangnya satu nombor;
  • 4. Kesimpulan

Melalui artikel ini, kami mempelajari cara menggunakan ungkapan biasa PHP untuk mengesahkan sama ada teks mengandungi rentetan tertentu. Ekspresi biasa ialah alat yang sangat berkuasa yang boleh mencapai pemprosesan teks yang cepat dan tepat. Kami hanya menyebut sebahagian daripadanya.

Atas ialah kandungan terperinci Kaedah ungkapan biasa PHP untuk mengesahkan sama ada teks mengandungi rentetan tertentu. 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