PDA

View Full Version : سوال: مشکل Regex در رشته های فارسی



ali.aghdam
پنج شنبه 07 اردیبهشت 1391, 11:53 صبح
برای تشخیص فاصله‌های اضافی در درون رشته از Regex زیر استفاده می‌کنم که برای متن‌های انگلیسی به درستی کار می‌کند اما در رشته‌های فارسی عملکرد صحیحی ندارد


/[ ]+/

کدی که استفاده می کنم:


$pt_spaces= "/[ ]+/";
$text = "سلام دنیا"; // Word for : hello word
$comma_content = preg_replace($pt_spaces, " ",$text);

Hamid.RDN
پنج شنبه 07 اردیبهشت 1391, 14:33 عصر
دوست عزیز کد شما درسته:

اما ۳ تا نکته

۱- از این regex هم میتونی استفاده کنی


$pt_spaces= "/\s+/";

۲- از آرگومان u برای زبان فارسی و unicode در reg exp استفاده کن

۳- فایلت رو به فرمت utf8 ذخیره کن

ali.aghdam
پنج شنبه 07 اردیبهشت 1391, 17:28 عصر
درست می‌فرمایید کد من مشکلی نداره ( تستش (http://regexpal.com/?flags=gi&regex=%5B%20%5D%2B&input=%D8%B3%D9%84%D8%A7%D9%85%20%20%20%20%D8%AF%D 9%86%DB%8C%D8%A7) ) از این کد تو وردپرس استفاده می‌کنم برای تغییر محتویات the__content که فکر کنم که به دلایلی وردپرس داره مشکل ایجاد میکنه!

تایپیک در فروم وردپرس فارسی: http://forum.wp-persian.com/topic/21881

pepsiphone
سه شنبه 03 بهمن 1396, 23:39 عصر
از کتابخونه زیر هم میتونی استفاده کنی Regex.Persian.Language (https://github.com/hosseinmousavi/Regex.Persian.Language)