PHP normal ifadeleri: '^' içinde son sınırlayıcı bulunamadı


109

Normal ifadelerle ilgili bazı sorunlar yaşıyorum.

Bu benim kodum

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

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

Çalıştırıyorum ve şunu alıyorum:

Uyarı: preg_match () [function.preg-match]: İçinde son sınırlayıcı '^' bulunamadı


Sınırlayıcılara ihtiyaç duymayan T-Regx kitaplığını kullanabilirsiniz .
Danon

Yanıtlar:


166

PHP normal ifade dizeleri sınırlayıcılara ihtiyaç duyar. Deneyin:

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

Ayrıca, sıfır değil, küçük harf olduğuna dikkat edin. Ek olarak, sadece doğruluyorsanız, yakalama grubuna ihtiyacınız yoktur ve normal ifadeyi basitleştirebilirsiniz /^\d+$/.

Örnek: http://ideone.com/Ec3zh

Ayrıca bkz: PHP - Sınırlayıcılar


2
Bağlantılı materyalleri, kullanım [ve ]sınırlayıcıları okumayanlar için , aksi takdirde modelin kendisiyle çatışırsınız.
greenoldman

24

Normal ifade kalıbınızın sınırlayıcılar içinde olması gerekir:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.