PDA

View Full Version : مبتدی: سوال در مورد PCRE modifiers



mostafa272
سه شنبه 22 فروردین 1391, 19:17 عصر
با سلام

سوال من در مورد رشته الگویی هست که در توابع ای مثه preg_match و یا preg_replace استفاده میشه.اینکه ترتیب کاراکترها تو رشته الگویی چه معنی میده و چه طوریه؟ مثلا

$user=preg_replace("([^a-z0-9_]*)",'',$user);

یعنی از متغیر user جز حروف کوچک ، اعداد و زیرخط بقیه رو حذف کن ؟

mostafa272
چهارشنبه 23 فروردین 1391, 13:00 عصر
بابا یکی پیدا نمیشه به ما توضیح بده دقیقا این عبارت منظم چه جوریه؟من می خوام با preg_match یه رشته رو کنترل کنم که فقط شامل حروف کوچک،عدد و زیر خط باشه(یعنی واسه کنترل عبارت بالا.ولی اینو تو preg_match میزارم درست جواب نمیده .

MostafaEs3
چهارشنبه 23 فروردین 1391, 16:56 عصر
دیروز میخواستم جواب بدم بعد از نوشتن پست ،لامصب اینترنتم قطع شد دیگه حوصله نکردم بنویسم !

ببین عبارت منظم خیلی راحته ... برای سرچ و چیزای دیگه میشه استفاده کرد ... مثلا ستاره ( * ) برای همه ی مقادیر به غیر از علامتهاست و گاهی فقط 1 حرف رو شامل میشه ... یا مثلا نقطه برای علامتها .. حالا مثلا اگه نقطه و ستاره باهم بیان منظورش همه ی مقادیر هست .. هرکدوم از پرانتز ها و چیزای دیگه هم یک کار خاصی انجام میدن

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

حالا اگه بخوای حروف بزرگ رو حذف کنی دقیقا برعکس میشه .. یعنی میشه این :



$user=preg_replace("([^A-Z_]*)",'',$user);


درمورد عبارات منظم هم توی خود سایت php.net .. توی صفحه ی همین تابع یا preg_match که بری توی مطالب مرتبط یک لینکی هست به این اسم : PCRE PATTERNS ... اونجا کامل توضیح داده به زبان انگلیسی :لبخند:

mostafa272
چهارشنبه 23 فروردین 1391, 22:05 عصر
با عرض معذرت ولی فک کنم داری برعکس میگی!چون تست کردم رشته های مختلف رو اون کدی که نوشتم فقط حروف کوچک ، عدد و زیرخط رو قبول میکنه و غیر اون رو حذف می کنه از اون رشته!در هر صورت ممنون!