2010-11-19 15 views
3

Hızlı bir PHP sayfası yazıyorum ve aksanlı karakterler içeren Dizeleri yok saymam gerekiyor. Ben her kelime bu preg_match() dize kullanıyorum:Bu PHP regexi aksanlı karakterler için neden uyuşmuyor?

"[ÀÁÅÃÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ]"

(Oldukça kaba kuvvet yöntemi biliyorum, ama görünüşe [a-zA-Z] aksanlı karakterler için eşleşebilir)

Ama işlev asla aksanlı karakterler ile dizeleri arama yaptığında return true görünmektedir (Örnekler: "cheapâ € |", "gustarÃa" ...) daha önce, bu yüzden işaret lütfen Regex kullanmadıysanız

Burada yaptığım aptal hatalar!

+0

Dizelerinizin nasıl kodlandığını biliyor musunuz (örneğin UTF8)? Düzenli ifade aramaları da dahil olmak üzere, herhangi bir işlem yapıyorsanız bu önemli olacaktır. –

+0

Bir kodlama sorununuz var. Bana bir dahaki sefere hayır, hayır, değil mi? :) – tchrist

cevap

3

PHP regexes şöyle, delimiters gerekir: bu dolar işareti bir değişken olarak php tarafından yanlış çünkü ifadeler için tek tırnak kullanmak da tercih edilir

preg_match('/[ÀÁÅÃÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ]/', "gustaría"); 

Not söyledi.

+0

Sorunu mükemmel bir şekilde çözdüğünüzden, sınırlayıcıların farkında değildim! + 1 sana – p17373

İlgili konular