Ben karışık ideografik / latin (japanse / Korece / Çin) tam metin arama için regex kullanarak / formatlamasýný bazı girdileri çalışıyorum.
Ben yine (bu kodun orijinal yazara tam kredi) bulamıyorum hangi bir forumunda bir Asya / latin dili dize hijyen de kişinin girişimi eski örneği bulundu.
Ben, bu latin tabanlı sayılar 1,4-9 geri kalanından daha farklı sayılar 0, 2, ve 3 tedavi gibi görünüyor neden tam (temelde numaraları 0 davranır özellikle fonksiyonunun regex kısmını anlamakta sorun yaşıyorum onlar Asya karakterleri sanki 4-9 düzgün, ancak sayıları sorguda 0,2-3) tedavi edilir.
For example. I am trying to sanitize the following string:
"hello 1234567890 蓄積した abc123def"
and it will turn into:
"hello 1 456789 abc1 def 2 3 0 蓄 積 し た 2 3"
the correct output for this sanitized string should be:
"hello 1234567890 蓄 積 し た abc123def"
Eğer Asya karakterleri dışarı düzgün boşluk görebilirsiniz ama sayılar 0, 2, 3 farklı diğer tüm sayısından daha kabul edilir gibi. Regex bu numaraları 0,2 ve 3 tedavi neden herhangi bir yardım farklı bir büyük bir yardım olacaktır (ya da benzer bir sonuç elde daha iyi bir yol biliyorum!) Teşekkür ederim
Ben
dahil ettik
function prepareString($str) { $str = mb_strtolower(trim(preg_replace('#[^\p{L}\p{Nd}\.]+#u', ' ', $str))); return trim(preg_replace('#\s\s+#u', ' ', preg_replace('#([^\12544-\65519])#u', ' ', $str) . ' ' . implode(' ', preg_split('#([\12544-\65519\s])?#u', $str, -1, PREG_SPLIT_NO_EMPTY)))); }
UPDATE: Providing context for clarity
Ben Çin'de açılacak bir web sitesi yazma duyuyorum. Bu web sitesi bir arama fonksiyonu var ve ben arama sorgusu girişi için bir ayrıştırıcı yazmaya çalışıyorum.
Bir cümlede kelimeler arasında ayırıcı olarak "" kullanan İngilizce aksine, Çince kelimeler arasında boşluk yoktur. Bu nedenle, ben her Çince karakter ayırır ve ayrı ayrı veritabanı içinde her karakter için arayarak yeniden biçimlendirmek bir arama sorgusu var. Çinli kullanıcılar, aynı zamanda onların Çince karakterler (örn. Ivy 牛仔 铺) ile birlikte karıştırabilirsiniz gibi marka isimleri gibi şeyler için İngilizce / Latin karakterleri kullanacaktır.
Ne yapmak istiyorsunuz her bir boşlukla Çince karakter Çince karakter dışarı İngilizce kelimelerin tüm ayrı ve Ayrı olduğunu.
Bir arama sorgusu bu gibi görünebilir: Ivy 牛仔 铺
Ve ben bu gibi görünüyor böylece bunu ayrıştırmak isterim: Ivy 牛 仔 铺