Çözüm (diğer yanıtların bahsetmediği - en azından benim ilk yazdığım sırada), PHP sınırlayıcılara atıfta bulunduğunda, kodunuzda gördüğünüz sınırlayıcılara (tırnak işaretleri olan) değil, sonraki dizenin içindeki karakterler. (Aslında bunu herhangi bir belgede herhangi bir yerde belirtilmiş görmedim: bunu örneklerde görmelisiniz.) Bu nedenle, diğer birçok dilde alışık olabileceğiniz gibi düzenli bir ifade sözdizimine sahip olmak yerine:
/something/
PHP dizeleri kullanır ve sonra dizenin içinde başka bir sınırlayıcı arar :
'/something/'
PHP'nin atıfta bulunduğu sınırlayıcı, /
karakter çifti yerine '
karakter çiftidir . Dolayısıyla, yazarsanız 'something'
, PHP s
hedeflenen sınırlayıcı olarak alacak ve sınırlayıcı olarak alfasayısal karakterleri kullanmanıza izin verilmediğinden şikayet edecektir .
Dolayısıyla, büyük / i
küçük harfe duyarlı olmayan bir eşleşme istediğinizi göstermek için (örneğin) bir iletmek istiyorsanız, onu dizenin içine ancak normal ifade sınırlayıcılarının dışına iletirsiniz:
'/something/i'
/
Sınırlayıcınız dışında bir şey kullanmak istiyorsanız, örneğin bir URL ile eşleşiyor ve tüm eğik çizgileri atlamak zorunda kalmak istemiyorsanız yapabilirsiniz:
'~something~'
preg_match()
değişkenler olarak aktarıyorsanız, değişkenlerin sırasını yanlışlıkla işlev çağrısında karıştırmadığınızdan emin olun, çünkü bu da neredeyse kesinlikle aynı sonuca neden olacaktır. görünen hata.