Ekspresi reguler PHP: Tidak ditemukan pembatas akhir '^' di


103

Saya mengalami masalah dengan ekspresi reguler.

Ini kode saya

$pattern = "^([0-9]+)$";

if (preg_match($pattern, $input))
   echo "yes";
else
   echo "nope";

Saya menjalankannya dan mendapatkan:

Peringatan: preg_match () [function.preg-match]: Tidak ditemukan pemisah akhir '^' di


Anda dapat menggunakan pustaka T-Regx , yang tidak membutuhkan pembatas.
Danon

Jawaban:


158

String PHP regex membutuhkan pembatas. Mencoba:

$numpattern="/^([0-9]+)$/";

Juga, perhatikan bahwa Anda memiliki huruf kecil o, bukan nol. Selain itu, jika Anda hanya memvalidasi, Anda tidak memerlukan grup penangkapan, dan dapat menyederhanakan regex menjadi /^\d+$/.

Contoh: http://ideone.com/Ec3zh

Lihat juga: PHP - Pembatas


2
Bagi mereka yang tidak membaca materi terkait, penggunaan [dan ]pembatas, jika tidak, Anda akan mengalami konflik dengan pola itu sendiri.
greenoldman

24

Pola regex Anda harus berada dalam pembatas:

$numpattern="/^([0-9]+)$/";

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.