View Full Version : در خواست کمک برای نوشتن RegularExpressions
debugger
سه شنبه 25 خرداد 1389, 00:58 صبح
دوستان عزیز من میخوام در یک فایل متنی (txt) رشته ای را جستجو کنم که به صورت زیر امده است (به صورت پراکنده داخل فایل متنی نوشته شده است)
["username"] = "x";
x می تونه عدد یا حرف یا هر چیز دلخواه دیگه باشه که تعداد کاراکترهاش معلوم نیست
میخوام کدی بنویسم که با استفاده از RegularExpressions اون قسمت x را برام پیدا کنه ؟
با تشکر
r00tkit
سه شنبه 25 خرداد 1389, 01:14 صبح
سلام
من متوجه منظور دقیق نشده می شه یه مثال بزنید
ان چیزی که فهمیدم:
["username"] = "3ef";یا
["username"] = "sfg";
debugger
سه شنبه 25 خرداد 1389, 01:29 صبح
ببین دوست عزیز جای x میشه هر چی دلت خواست بنویسی
مثلا بنویسی
yashar
sakjalksja254
!%#$^fas
aksfja52444433454dfgs
hhhhhhasfdla
55555555475
خلاصه بین دو تا "" هر چی ممکنه باشه ما باید اونو پیدا کنیم . اصلا هم نمیدونیم چند تا کاراکتری هست ؟ و اصلا نمی دونیم از چه کاراکتری هایی استفاده شده
فقط اینو میدونم که حروف فارسی نیستند
ممنونم
r00tkit
سه شنبه 25 خرداد 1389, 01:36 صبح
\["sername"\]=\".+?\";
قبل " ها یه \ قرار بده
debugger
سه شنبه 25 خرداد 1389, 01:49 صبح
Regex
urlRegex = newRegex(["sername"]=".+?\";,RegexOptions.IgnoreCase);
قبل " ها یه \ قرار دادم . نشد . هر طوری نوشتم نشد
میشه زحمتشو بکشی . ببینم چطوری میشه ?
من که اینطوری نوشتم
Regex urlRegex = new Regex("([\"username\"])=\".+?\";$",RegexOptions.IgnoreCase);
میلاد قاضی پور
سه شنبه 25 خرداد 1389, 02:10 صبح
فکر کنم باید پرانتز هارو حذف کنی
newRegex("\[\"username\"\]=\".+?\";",
debugger
سه شنبه 25 خرداد 1389, 02:20 صبح
درستش اینطوریه
Regex urlRegex = new Regex("[\"username\"]=\".+?\";",RegexOptions.IgnoreCase);
مشکل اینه که x را بر نمی گردونه
کل خطی که توش عبارت بالا بکار رفته شده را بر میگردونه
میلاد قاضی پور
سه شنبه 25 خرداد 1389, 02:24 صبح
اینطوری میتونی ایکس رو هم دربیاری
Regex r;
r = new Regex("[\"username\"]=\"<X>\";",regexoption.ignorecase);
MatchCollection mc = r.Matches(textbox1.text);
foreach (Match m in mc)
{
listBox2.Items.Add(m.Groups["x"].Value);
}
پیشاپیش معذرت اگه کمکت نکرد. کد رو از یکی از پروژه های قدیمی کپی کردم اساتید محترم میتونن نکات اصلاحیش رو بگن .
debugger
سه شنبه 25 خرداد 1389, 02:38 صبح
اینطوری میتونی ایکس رو هم دربیاری
Regex r;
r = new Regex("[\"username\"]=\"<X>\";",regexoption.ignorecase);
MatchCollection mc = r.Matches(textbox1.text);
foreach (Match m in mc)
{
listBox2.Items.Add(m.Groups["x"].Value);
}
پیشاپیش معذرت اگه کمکت نکرد. کد رو از یکی از پروژه های قدیمی کپی کردم اساتید محترم میتونن نکات اصلاحیش رو بگن .
از کد شما نتونستم خروجی بگیرم
خودم اینطوری نوشتم ولی کل خطی که اون عبارت توش بکار رفته را بر میگردونه
data = str.ReadToEnd();
Regex urlRegex = newRegex("[\"username\"]=\".+?\";", RegexOptions.IgnoreCase);
MatchCollection urlMatches = urlRegex.Matches(data);
foreach (Match urlMatch in urlMatches)
{
listBox1.Items.Add(urlMatch.Value.ToString());
Application.DoEvents();
}
میلاد قاضی پور
سه شنبه 25 خرداد 1389, 02:41 صبح
ببینید من یه زمانی یه برنامه نوشتم که سورس صفحه دوستان سایت فرندفید رو میخوند و لیست دوستان رو در میآورد . هرجا که اسم دوستان بود توی سورس کنارش یه دونه
alt=""
داشت . من با این روش تونستم بالاخره فقط اسم دوستامو از تو سورس در بیارم .
private void button_autoAdd_Click_1(object sender, EventArgs e)
{
Regex r;
r = new Regex(@"alt=\""(?<m>\w*)\""\W+");
MatchCollection mc = r.Matches(richTextBox1.Text);
foreach (Match m in mc)
{
listBox1.Items.Add(m.Groups["m"].Value);
}
}
debugger
سه شنبه 25 خرداد 1389, 02:50 صبح
من فکر می کنم بخاطر استفاده از [] که جواب نمیده چون این دو کاراکتر درRegularExpressions خودشون کاربرد دارد . و برنامه اینو اشتباهی میگیره
وگرنه صورت زیر کاملا درست خواهد بود
Regex urlRegex = new Regex(@"[\"username\"]=\""(?<m>\w*)\""\W+", RegexOptions.IgnoreCase);
میلاد قاضی پور
سه شنبه 25 خرداد 1389, 03:29 صبح
اگه اولش @ بذارید باید بعد از هر کوتیشن یه کوتیشن دیگه هم بذاری یا از تک کوت استفاده کنی.ولی با اینا برطرف نمیشه .
debugger
سه شنبه 25 خرداد 1389, 11:35 صبح
کسی میدونه چطور میشه بوسیله regex کاراکتر ] را جستجو کرد ؟؟؟؟
r00tkit
سه شنبه 25 خرداد 1389, 12:12 عصر
سلام
شرمنده نبودم
عبارت ] در عبارات با قائده یعنی مجموعهی خاص اما اگه قبلش \ رو قرار بدی لیترال حساب می شه
پی نوشت:
من درست می نویسم ولی وقتی توی سایت قرار می دم نمی دونم چرا بهم می خوره و بعضی از کاراکتر ها حذف می شه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.