2010-03-14 14 views

cevap

11
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg") 

Bilmiyorum. Perl, JS, vb. Tek sebebi, PHP'nin sahip olmadığı normal ifadelere izin vermeleridir.

+8

Tek düzenleyiciyi hem düzenleyiciyi hem de regex modelini sağlamak için kullanmayı tercih ettikleri içindir. ' "/ [A-z]/i" '. – kennytm

1

sınırlayıcılar, ifadenin başına ve sonuna herhangi bir char ekleyiniz, bu durumda ve geleneğe göre, '/' karakteri preg_replace('/.*\.(.*)$/',"\\1",$imgfile); İntikam çok iyi değil, strrpos kullanmak ve substr() almak daha iyidir.

Regex yavaştır, bunu kullanın. $ extension = substr ($ imgName, strrpos ($ imgName, '.')); PHP / sınırlayıcıları gerektirir neden

+0

Bu problemi biliyorum; preg_replace() [function.preg-replace]: Bilinmeyen değiştirici '$' in içinde C: \ wamp \ www .. – sml

+0

Evet, benim kötü yanı sıra, düzenleme de ifade yok gibi görünüyor. Sonunda bu durumda bir substr() kullanmak daha iyi. Preg_match'i de kullanabilirsiniz. –

+0

Kodunuzdan backticks ile çıkabilirsiniz (bkz. Http://stackoverflow.com/editing-help). $ Düzeltme iyi görünüyor. –

15

Preg'ü için liman Ereg desenleri 4 ana şeyleri bilmelisiniz:

  1. ayraçları ekle (/): 'pattern' => '/pattern/'

  2. Kaçış ayırıcı o bir parçasıysa desen:
    Aşağıdaki şekilde program aracılığıyla elde edin:
    $ereg_pattern = '<div>.+</div>';
    $preg_pattern = '/' .addcslashes($ereg_pattern, '/') . '/';

  3. eregi (harf büyüklüğüne duyarsız eşleştirme): Eğer durum insenstive eşleştirme için eregi fonksiyonu kullanırken eğer 'pattern' => '/pattern/i' Yani, sadece eklemek 'i' (yeni modelin sonunda '/ Desen/').

  4. ASCII değerleri: desende numarasını kullanmak durumunda ereg olarak, bu bir karakterin ASCII başvuruyorsunuz farz olduğunu. Fakat preg'de, sayı ASCII değeri olarak değerlendirilmez. Dolayısıyla, deseniniz , ereg ifadesinde ASCII değeri içeriyorsa (örneğin: yeni satır, sekmeler vb.) Onaltılıya dönüştürür ve \ x ile önekini yapın. Bu yardımcı olacaktır
    Example: 9(tab) becomes \x9 or alternatively use \t.

Umut.

+0

Sınırlayıcılar arasında bir regex dizesinden kaçmak için yerleşik bir http://php.net/manual/en/function.preg-quote.php –

İlgili konular