PDA

View Full Version : سوال: نیاوردن یک رشته ای که یک کلمه خاص درونش دارد



forodo
جمعه 25 مرداد 1392, 00:00 صبح
سلام
چطوری میشه یک رشته ای مثل this is a question نیاورد. اگر توش is رو پیدا کرد؟
یه چیزی مثل پایگاه داده ولی من از % استفاده کردم نشد.
نمی خوام از split استفاده کنم.
من 212 تا رشته دارم که می خوام اونایی که داخلش مثلاً is هست رو به من نشون نده.
من اینو نوشتم ولی جواب نداد.

item.ToString() != "% Korra %"

mousa1992
جمعه 25 مرداد 1392, 00:05 صبح
از string.Contains استفاده کن

forodo
جمعه 25 مرداد 1392, 12:09 عصر
چطوری می تونم بگم به جز اعداد 1 تا 10 بقیه اعداد رو نیاره.
حالا اگه همه هم نشه مثلاً تا 150 رو نیاره.
بعنی فقط اعداد 1 تا 10 رو به من نشون بده.
البته اینارو به صورت string ببینه نه عدد.

forodo
جمعه 25 مرداد 1392, 12:32 عصر
چطوری می تونم بگم به جز اعداد 1 تا 10 بقیه اعداد رو نیاره.
حالا اگه همه هم نشه مثلاً تا 150 رو نیاره.
بعنی فقط اعداد 1 تا 10 رو به من نشون بده.
البته اینارو به صورت string ببینه نه عدد.
کد من اینه:

private void GetFilms()
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
DirectoryInfo di = new DirectoryInfo(listBox1.Items[i].ToString());
DirectoryInfo[] directories = di.GetDirectories("*.*", SearchOption.AllDirectories);
foreach (DirectoryInfo item in directories)
{
if ((item.ToString() != "AUDIO_TS" && item.ToString() != "D" && item.ToString() != "S" &&
item.ToString() != "VIDEO_TS" && item.ToString() != "Z - Together" &&
item.ToString() != "D & S" && item.ToString() != "Doubleh" && item.ToString() != "Subtitle" &&
item.ToString() != "1" && item.ToString() != "2" && item.ToString() != "American Pie" &&
item.ToString() != "1- American Pie" && item.ToString() != "2- American Pie 2" && item.ToString() != "3- American Wedding" &&
item.ToString() != "4- Band Camp" && item.ToString() != "5- The Naked Mile" && item.ToString() != "6- Beta House" &&
item.ToString() != "7- The Book Of Love" && item.ToString() != "8- American Reunion" && item.ToString() != "Eurotrip" &&
item.ToString() != "Roadtrip" && !item.ToString().Contains("Korra") && item.ToString() != "3" &&
item.ToString() != "4" && item.ToString() != "5" && item.ToString() != "6" &&
item.ToString() != "7" && item.ToString() != "8" && item.ToString() != "9" &&
item.ToString() != "10" && item.ToString() != "codec" && !item.ToString().Contains("DVD") &&
!item.ToString().Contains("Tail E") && item.ToString() != "K-Lite Codec Pack" && !item.ToString().Contains("9") &&
!item.ToString().Contains("8") && !item.ToString().Contains("7") && !item.ToString().Contains("6")) ||
item.ToString() == "9 - Do It Yourself Mr. Bean" || item.ToString() == "Around The World In 80 Days" || item.ToString() == "8 - Mr. Bean In Room 426" ||
item.ToString() == "7 - Merry Christmas Mr. Bean" || item.ToString() == "( 7 ) harry potter and the deathly hollows" || item.ToString() == "6 - Mr. Bean Rides Again" ||
item.ToString() == "( 6 ) harry potter and the half-blood prince")
{
for (int z = 0; z < 20; z++)
{
if (item.ToString() != z.ToString())
{
lstFilmType.Items.Add(item);
break;
//continue;

}
}
}
}
}
}

حالا می خوام اگه اعداد 1 تا 20 رو پیدا کرد اونا رو در لیست باکس به من نشون نده.

matrix0151
جمعه 25 مرداد 1392, 12:35 عصر
از رجکس استفاده کن اون کلمه رو تو متن انتخاب کن و جاش " " رو بذار...با replace

mehrdad1991h
جمعه 25 مرداد 1392, 13:02 عصر
Contains-indexof-startwith-spilit
اگر بلدی با regular expression ها (regex) کار کنی از اون هم میتونی استفاده کنی...
کار مشکلی نیست چیزی که میخوای....

forodo
جمعه 25 مرداد 1392, 13:08 عصر
از رجکس استفاده کن اون کلمه رو تو متن انتخاب کن و جاش " " رو بذار...با replace

Contains-indexof-startwith-spilit
اگر بلدی با regular expression ها (regex) کار کنی از اون هم میتونی استفاده کنی...
کار مشکلی نیست چیزی که میخوای....
من هیچی در مورد این نمی دونم اگه لطف کنید یه لینک به من بدید ممنون می شم.
ترجیحاً فارسی باشه.

tooraj_azizi_1035
جمعه 25 مرداد 1392, 14:24 عصر
0 تا 180:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$

forodo
جمعه 25 مرداد 1392, 14:52 عصر
0 تا 180:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
این چیه؟
چجوری ازش استفاده می کنن؟

mousa1992
جمعه 25 مرداد 1392, 16:08 عصر
این چیه؟
چجوری ازش استفاده می کنن؟

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

این ی لینک برا شناختن عبارات منطقی (http://msdn.microsoft.com/en-us/library/az24scfc.aspx)
و اینم مربوط به کلاس regex در سی شارپ (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx)

forodo
جمعه 25 مرداد 1392, 17:34 عصر
یعنی باید اینجوری بنویسیم؟

if (item != "^(0?[0-9]{1,2}|1[0-7][0-9]|180)$")
{
lstFilmType.Items.Add(Path.GetFileName(item));
}

هیچ اتفاقی نمی افته.

mousa1992
جمعه 25 مرداد 1392, 17:47 عصر
string input; string pattern = @"\b(\w+)\s\1\b";
input = sr.ReadLine();
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(input); if (matches.Count > 0)
{
Console.WriteLine("{0} ({1} matches):", input, matches.Count);
foreach (Match match in matches)
Console.WriteLine(" " + match.Value);
}


این نمونه ای هست که توی سایت msdn مثال زده
اون چیزی که دوستمون گفتن همون Pattern هست (الگوی جستجو ) و باید ی نمونه از regex بسازید و الگو رو بهش بدین و option ها رو
و با استفاده از حلقه foreach میتونید ایتم هایی رو که بهتون برمیگردونه رو بررسی کنید

forodo
شنبه 26 مرداد 1392, 00:34 صبح
من از اینا سر در نمیارم.
لطفاً بگید چطوری کارم راه می افته.
چطوری می تونم بگم که اعداد رو تا یه عددی نیاره.
اعداد به صورت string باشند.
یعنی اونارو به این صورت ببینه.

mehrdad1991h
شنبه 26 مرداد 1392, 08:58 صبح
نشستم توضیح نوشتم موقع ارسال ارور داد و همش پاک شد لذا دیگه توضیح زیاد فقط برو لینک های زیر را ببین
regex برای این به کار میره که یه قسمتی از متن که نامشخصه ولی متن اطرافش مشخص هست و الگوی ثابتی داره را پیدا کنی
مثلا تگ های HTML را در نظر بگیر مثلا <a/>یه سری متن<a> به وسیله ریجکس میتونه اون تیکه وسط تگ که همیشه عوض میشه را پیدا کنی چون ابندا و انتهاش همیشه ثابته و یه الگوی خاص داره
شما هم برا کارت از همین روش استفاده کن
مثال :
http://www.dotnetperls.com/regex-match

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx

http://msdn.microsoft.com/en-us/library/az24scfc.aspx