ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک برای تنظیم یک عبارت با قاعده ساده Regex



iroo
April 20th, 2017, 17:35
سلام و خسته نباشید

میخوام یک کمکی از شما بگیر در مورد عبارت های با قاعده

این یک رشته است:
admin.php?user=alireza&sa=y&SID=0ahUKEwiO3u2Ji&access=14587&commment=yes


میخوام از این رشته مقدار SID رو حذف کنم، یعنی قسمت قرمز رنگ

مقدار 0ahUKEwiO3u2Ji طولش متغییر هست، میتونه تا 100 تا هم باشه

اینطوری میشه عبارت با قاعدش؟ (فایل پیوست)

slashflash
April 20th, 2017, 22:34
سلام
خوب برای اون مقدار یه متغیر مشخص کنید بعدش داخل عبارت با قاعده بگید که این SID= رو بگیر با +var+ مربوطه و جاش رو با هیچی جایگزین کن.
مثلاً این نمونه :




var id = 2;
var s= ' admin.php?user=alireza&sa=y&SID='+id+'&access=14587&commment=yes ' ;
var reg=new RegExp("SID="+id+'&*');
var s=s.replace(reg,'');

iroo
April 22nd, 2017, 11:53
سلام
خوب برای اون مقدار یه متغیر مشخص کنید بعدش داخل عبارت با قاعده بگید که این SID= رو بگیر با +var+ مربوطه و جاش رو با هیچی جایگزین کن.
مثلاً این نمونه :




var id = 2;
var s= ' admin.php?user=alireza&sa=y&SID='+id+'&access=14587&commment=yes ' ;
var reg=new RegExp("SID="+id+'&*');
var s=s.replace(reg,'');




متوجه منظورتون نشدم

AtrafNet
April 22nd, 2017, 12:42
سلام
امیدوارم به کارتون بیاد:



<?php
$str = 'admin.php?user=alireza&sa=y&SID=0ahUKEwiO3u2Ji&access=14587&commment=yes';
preg_match_all('/SID=\w*/', $str, $matches);
var_dump($matches);


تستش: https://regex101.com/r/EzqHBz/1

برای جایگزینی هم:



<?php
$str = 'admin.php?user=alireza&sa=y&SID=0ahUKEwiO3u2Ji&access=14587&commment=yes';
echo preg_replace('/SID=\w*/', '', $str);

iroo
April 22nd, 2017, 12:45
سلام
امیدوارم به کارتون بیاد:



<?php
$str = 'admin.php?user=alireza&sa=y&sid=0ahukewio3u2ji&access=14587&commment=yes';
preg_match_all('/sid=\w*/', $str, $matches);
var_dump($matches);


تستش: https://regex101.com/r/ezqhbz/1

برای جایگزینی هم:



<?php
$str = 'admin.php?user=alireza&sa=y&sid=0ahukewio3u2ji&access=14587&commment=yes';
echo preg_replace('/sid=\w*/', '', $str);


مممممممنونم
خیلی عالی بود، خیلی ممنونم
این w به چه مفهومی هست؟

AtrafNet
April 22nd, 2017, 12:50
مممممممنونم
خیلی عالی بود، خیلی ممنونم
این w به چه مفهومی هست؟

یعنی Any Word.
بخش Quick Reference لینک بالا رو ببینید خیلی اطلاعات مفیدی توشه :)

iroo
April 28th, 2017, 11:06
مممممممنونمخیلی عالی بود، خیلی ممنونماین w به چه مفهومی هست؟داداشی این کد شما به خوبی کار میکنه، فقط میشه علامت & اول این ورودی هم حذف کرد؟ چون من هر کاری کردم سیستمش به هم خوردیعنی رشته مورد نظر حذف میشه ولی & میمونهممنون میشم کمکم کنید، تشکر

firebox
April 28th, 2017, 11:55
داداشی این کد شما به خوبی کار میکنه، فقط میشه علامت & اول این ورودی هم حذف کرد؟ چون من هر کاری کردم سیستمش به هم خوردیعنی رشته مورد نظر حذف میشه ولی & میمونهممنون میشم کمکم کنید، تشکر

کافیه & رو به اون الگوتون اضافه کنید ، به این صورت بشه:


/&SID=\w*/

iroo
April 28th, 2017, 12:23
کافیه & رو به اون الگوتون اضافه کنید ، به این صورت بشه:


/&SID=\w*/

ممنونم داداش
راستش خودم قبلش این کار رو کردم، ولی با اضافه کردن & کلا کار نمیکنه...

firebox
April 28th, 2017, 12:38
ممنونم داداش
راستش خودم قبلش این کار رو کردم، ولی با اضافه کردن & کلا کار نمیکنه...
نباید مشکلی داشته باشه ، این لینک دمو رو ببینید :
http://www.phpliveregex.com/p/jV0
سمت راست روی preg_replace کلیک کنید ، می تونید ببیند درست کار میکنه.

iroo
April 28th, 2017, 13:55
نباید مشکلی داشته باشه ، این لینک دمو رو ببینید :
http://www.phpliveregex.com/p/jV0
سمت راست روی preg_replace کلیک کنید ، می تونید ببیند درست کار میکنه.
اره تو سایت Regex110 هم همین مورد رو درست نشون میده
منتها تو کد نه.... تا قبل اضافه کردن & کار میکنه، وقتی بهش & اضافه میشه دیگه کار نمیکنه و مقدار مورد نظر از رشتهع کم نمیشه

T.Toosi
April 28th, 2017, 14:12
تست کنید :


$ss = 'admin.php?user=alireza&sa=y&sid=0ahukewio3u2ji&access=14587&commment=yes';
echo preg_replace("/\&sid=\w*/", "", $ss);

iroo
April 28th, 2017, 15:07
تشکر از تمامی دوستان
مشکل حل شد، روش کار همه دوستان درست بوده، منتها من به رشته رودیم دقت نمیکردم و مقداری من بدین صورت بود
amp;SID=asdwa52f16we5&
مقدار amp; مورد توجه من نبود، پوزش از خدمت تمامی دوستان عزیز و گرامی

firebox
April 28th, 2017, 16:32
تست کنید :


$ss = 'admin.php?user=alireza&sa=y&sid=0ahukewio3u2ji&access=14587&commment=yes';
echo preg_replace("/\&sid=\w*/", "", $ss);
& جزو کاراکترهای خاص regex نیست ، نیازی به اسکیپ کردن نداره.

iroo
April 29th, 2017, 20:23
سلام و خسته نباشید

راستش من هر کاری میکنم عبارت های با قاعده رو یاد نمی گیرم: میخواستم مورد زیر رو انجام بدم و کلا کدهای جاوای مشخص شده رو حذف کنم، ممنون میشم لطف کنید و کمکم کنید:



.......</div><script>if(window.ADMIN && wins){window.PAGE.SA = new wins();window.PAGE.SA.init({"gossipParam":{"f":1,".crumb":false,"appid":"ALIBABA.com","bck":false,"csrcpvid":"Fn68Wzk4LjE1p6rx9edbswGDMTM4LgAAAAARSNYG","vtestid":"","mtestid":"","spaceId":"2766679"},"anykey":true,"boldTag":"\u003Cb class=\u0022yui3-highlight\u0022\u003E{s}\u003C\/b\u003E","enableAnnotation":false,"annotation":[],"saBase":"https:\/\/USER.ALIBABA.com\/sugg\/gossip\/gossip-us-ura\/","clkLink":"https:\/\/USER.ALIBABA.com\/search","ylcParam":{"_S":"2766679","fr":"","origin":"ALIBABA.com","n_rslt":0},"clrLog":{"_I":"Fn68Wzk4LjE1p6rx9edbswGDMTM4LgAAAAARSNYG","_S":"2766679"},"debug":false});}</script></div><!-- end section hd --></div><style type="text/css">

Sither
May 1st, 2017, 17:19
<script.*?>.*?</script>

iroo
May 1st, 2017, 20:20
نه داداش متاسفانه نشد