Çö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 shedeflenen 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 / iküçü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.