عبارت با قاعده

pesarelor

Member
PHP:
$s = "
pesarelor123 test <br/>
p123 <br/>
e123 <br/>
r123 <br/>
o123 <br/>
u123 <br/>
";
echo preg_replace('![^(^pesarelor$)$]1(.*)!i','',$s );
میشه یکی از دوستان این کد رو طوری ویرایش کنه که کار کنه.
در حال حاضر در این کد میاد pesarelor رو تیکه تیکه میکنه و به اجزای تشکیل دهنده تجزیه میکنه اگه اجزا بودن حذف نمیکنه.ولی من میخوام فقط اون اولی رو ثابت نگه داره و بقیه رو حذف کنه.
pesarelor123 test ممکنه هر چیزی باشه (*.)pesarelor
 

D.A.V.O.O.D

Member
PHP:
$s = "
pesarelor123 test <br/>
p123 <br/>
e123 <br/>
r123 <br/>
o123 <br/>
u123 <br/>
";
echo preg_replace('![^(^pesarelor$)$]1(.*)!i','',$s );
میشه یکی از دوستان این کد رو طوری ویرایش کنه که کار کنه.
در حال حاضر در این کد میاد pesarelor رو تیکه تیکه میکنه و به اجزای تشکیل دهنده تجزیه میکنه اگه اجزا بودن حذف نمیکنه.ولی من میخوام فقط اون اولی رو ثابت نگه داره و بقیه رو حذف کنه.
pesarelor123 test ممکنه هر چیزی باشه (*.)pesarelor

سلام مسعود
وجدانا خودت فهمیدی که سوالت چیه ؟ :green:

سوالت رو واضح تر بپرس تا اگه کسی بلد بود بتونه جوابت رو بده ...
 

pesarelor

Member
داوود جان کد رو تست میکردی متوجه میشدی هیچ کدوم حذف نمیشه جز اخری که از تجزیه pesarelor بوجود نیومد(حرف ماقبل) u123 .:green:
یه مثال دیگه میزنم مثلا:
pesare tehrani 12 sale
pesare lor 123 14 sale
pesare ghom 123 16 sale
با این عبارت با قاعده همه بجز پسره لر حذف بشه»:
PHP:
preg_replace('|pesare [^(lor)](.*)|');
 

D.A.V.O.O.D

Member
داوود جان کد رو تست میکردی متوجه میشدی هیچ کدوم حذف نمیشه جز اخری که از تجزیه pesarelor بوجود نیومد(حرف ماقبل) u123 .:green:
یه مثال دیگه میزنم مثلا:
pesare tehrani 12 sale
pesare lor 123 14 sale
pesare ghom 123 16 sale
با این عبارت با قاعده همه بجز پسره لر حذف بشه»:
PHP:
preg_replace('|pesare [^(lor)](.*)|');

مثال نزن ، بگو می خوای که مثلا با مثال بالات ، بعد از preg_replace ، خروجی چی باشه !؟
 

pesarelor

Member
داوود درسته لر هستم ولی لری که ننوشتم که نگیری چی میگم:green:
PHP:
$s = "
pesarelor123 test <br/>
p123 <br/>
e123 <br/>
r123 <br/>
o123 <br/>
u123 <br/>
";
echo preg_replace('![^(^pesarelor$)$]1(.*)!i','',$s );
میشه یکی از دوستان این کد رو طوری ویرایش کنه که کار کنه.
در حال حاضر در این کد میاد pesarelor رو تیکه تیکه میکنه و به اجزای تشکیل دهنده تجزیه میکنه اگه اجزا بودن حذف نمیکنه.ولی من میخوام فقط اون اولی رو ثابت نگه داره و بقیه رو حذف کنه.
pesarelor123 test ممکنه هر چیزی باشه (*.)pesarelor
و
یه مثال دیگه میزنم مثلا:
pesare tehrani 12 sale
pesare lor 123 14 sale
pesare ghom 123 16 sale
با این عبارت با قاعده همه بجز پسره لر حذف بشه
PHP:
preg_replace('|pesare [^(lor)](.*)|');

با زبان فارسی هم میگم:
دو مورد بالا رو بخونید
 

k2-4u

Well-Known Member
هرچی بود پاک بشه ولی اگر pesarlor بود پاک نشه
PHP:
<?php
$str='pesarelor 234  pesarelor salam  345 pesarelor';

echo preg_replace('/[^(pesarelor).]*/i','',$str);

?>
ولی من جای شما بودم . برعکس این کارو میکردم
یعنی همه pesarlor ها رو میکشیدم بیرون
 

pesarelor

Member
خب دوستان یه موردی توجه نکردید .
PHP:
$str='pesarelor 234  pesarelor salam  345 pesarelor p e s a r e l o r';
echo preg_replace('/[^(pesarelor).]*/i','',$str);
من مشکلی تو این مورد ندارم.مشکل من اینه که پرج رپلیس میاد پسره لر رو به پ س ر ل ر تبدیل میکنه و تجزیه شدشو اگه باشه حذف نمیکنه.من میخوام کاملش رو نگه داره و تجزیش رو پاک کنه یعنی پ ر ل س رو پاک کنه ولی پسرلر رو نه. در حال حاضر پ رو هم حذف نمیکنه :دی
 

pesarelor

Member
دوستان اصلا جواب سوال من اینایی که شما میگید نیست.شاید من بد توضیح داده باشم. من میگم با این کد
PHP:
preg_replace('|[^(lor)](.*)|');
در صورتی که رویه این متغییر اجرا بشه:
PHP:
$s = <<<H
lor test
rol rr 
l rr
ol rrr
rl ooo
rollorlro llll
llllllllllllllllllllll lll
rrrrrrrrrrrrrrrr lll
ooooooooooooo  rrrr
lllllllllloooooooooooooooooooorrrrrrrrrrrrr ooo
H;
فقط lor test رو حذف نکنه.لطفا تست کنید ببینید کار کرد بگذارید:rose:
 

k2-4u

Well-Known Member
خب حتما باید replace باشه . شما مگر نمی خوای فقط pesar lor پاک نشه !!
یعنی همه چی نابود بشه فقط pesar lor باقی بمونه!!
بیا . برعکس این کارو انجام بده . یعنی pesar lor رو از تو جمعیت بکش بیرون . بعد مثل هیتلر همه جمعیت رو بسوزون
این شکلی
PHP:
<?php

$str = '
pesar lor
pesar kord
pesar tork
pesar arab
pesar koli
other pesar
';

preg_match('/(pesar lor)/i',$str,$out);

echo $out[1]; // Hamon Pesar Lor Dg!!

$str=''; // Hamaro bokosh 

?>
 

pesarelor

Member
دوستان عزیزان همکاران واقعا سوال من اینقدر نامفهوم هست؟بابا چهار بار توضیح دادم:shock:
preg_replace('|[^test$](.*)|i','',$code);
این میاد بجای در نظر گرفتن test به صورت کامل اینطوری میکنه t\ \e \s \t میکنه.سوال من اینه راهی هست یه تیکه چک کنه یعنی فقط در صورت کامل بودن test اون یه مورد رو حذف نکنه نه اینکه به صورت تجزیه ای از اون t\ \e \s \t ! همین.:-?
راهی هست ؟
 
آخرین ویرایش:

pesarelor

Member
هر چی ما گفتیم نگذارید این تایپیک بخوابه اخرش خوابید:green:
بلاخره توضیح نهایی رو اماده کردم.preg_replace("|[^(masoud)](.*)|",'',$code); خب با این کد باید هر چیزی که بعد از مسعود هست تویه
PHP:
$code = <<<d
ali sdasdsadsad
masoud sdsdsd
doumas sdasd
d;
پاک نکنه و بقیه رو پاک کنه ولی کد پرج بالا به این شکل تغییر پیدا میکنه .preg_replace("|[^(m|a|s|o|d)](.*)|",'',$code); راهی هست بصورت یک پارچه مسعود حساب بشه و تجزیه نشه ؟:shock:
خواهشا نگذارید این بار تایپیک بخوابه دفعه سومه دارم از صفحات 2-3 میارمش صفحه اول:-?
 

جدیدترین ارسال ها

بالا