سفارش تبلیغ
صبا ویژن

سئو- استفاده از همه شگردها برای بالابردن ترافیک سایت

regex یا Regular expression فارسی

آیا فکر می کنید توی زبان پی اچ پی راهی داره که با توابع preg_match() یا ereg() بشه یه مجموعه کاراکتر فارسی یا کلا کاراکتر های فارسی رو بررسی کرد؟

اگر کسی قبلا این سوال را از من می کرد برای php کد زیر را به او می دادم

preg_match("/./us", $str); or preg_match("#(.)#us", $str);

که تو خود php manual  در http://php.net/manual/en/function.ucfirst.php آمده است

که کارش جدا کردن کدهای utf هست اما یک ایرادی داره و تکیه بر آن کار صحیحی نیست(دقت و ایمنی) و  به این راحتی ها هم نیست(چرا که صدها کاراکتر UTF-8/Unicode شبیه فارسی و عربی داریم)!

UTF-8 شامل:
Alphabetic(در فارسی همون آابپتثجچحخدذرزژسشصضطظعقفقکگلمنوهیی و البته حروف عربی هم)
Numeric
non-alphanum/Special
ASCII, 7/Bad bytes, ...

هم میشود ولی تا امروز فکر نمی کردم راه بهتری وجود داشته باشه

ولی راسته که می گویند همه چیز را همگان دانند

امروز از یکی از همکاران   مطلب جالبی یادگرفتم

بله دوست عزیز آقای کوشکی امروز در پاسخ به این سوال که چطور می شود pattern  یا الگویی برای تشخیص کلمات فارسی نوشت گفتند که خود حورف فارسی را بگذارید تو الگو

من تا قبل از اینکه از ایشان بشنوم که راهکار خیلی ساده تری برای تشخیص الگوی فارسی کلمات با استفاده از رجکس وجود دارد از یک الگوی گفته شده در داکیومنشن php استفاده می کردم(که اشاره شد)

اما الگوی استفاده مستقیم از حروف فارسی خیلی راحت است به راحتی آب خوردن

[آ-یa-zA-z]

باور نمی کنید امتحان کنید

البته دقت بیشتر هم میشه به اون داد

if(preg_match("#[(ابپتثجچحیخدذرزسشطظعغفقکگلمنوهیئضص)+]#",$str))

خواهید دید که مفسر php خیلی راحت با حروف فارسی در رجکس کار می کند راستش من قبلش حتی یکبار هم امتحان نکرده بودم

یعنی آنقدر مطمئن بود که php از فارسی در رجکس پشتیبانی نمی کند که حتی یکبار هم امتحان نکردم

اینه دیگه وقتی می گویند ایرانی ها کم نمی آرودند یعنی همین