PDA

View Full Version : سوال: کار با رشته ها: چگونه حروف بعد از یک کلمه خاص را انتخاب کنم؟



complexcoding
سه شنبه 14 مهر 1394, 18:45 عصر
دوستان سلام
من یک متن بسیار طولانی دارم و فقط یک کلمه یا عدد بعد از آن را میخواهم چگونه باید این کار را بکنم؟
مثال : من نمره محمد را میخواهم. "محمد= 20" حالا چگونه 20 را فراخوانی کنم؟ من نمره محمد را نمیدانم و از طریق یک متد میخواهم به این نمره برسم.
آیا متن را داخل کنترل کار با متن سیشارپ ببرم و از متدهای آن کنترل استفاده کنم ؟
یا در متدهای رشته ای راحت تر میتوان این کار را کرد؟
ممنون

nunegandom
سه شنبه 14 مهر 1394, 19:08 عصر
سلام من اینجوری استفاده گردم
string patternUser = "(?<=Username: )(.*?)(?=[<]+)";
string patternPass = "(?<=Password: )(.*?)(?=[<]+)";
WebClient wc = new WebClient();
string str = wc.DownloadString(@"http://nod321.eu/");
var users = Regex.Matches(str, patternUser);
var passes = Regex.Matches(str, patternPass);
int count = users.Count;
for (int i = 0; i < count; i++)
{
txt.Text += users[i].Value;
txt.Text += Environment.NewLine;
txt.Text += passes[i].Value;
txt.Text += Environment.NewLine;
txt.Text += @"--------------------";
txt.Text += Environment.NewLine;


}

از regex استفاده کردم و گفتم حروفی رو میخوام که بعد از Username هست و قبل از علامت > که ماله تگه br هستش

nunegandom
سه شنبه 14 مهر 1394, 19:12 عصر
الان شما چی میخوای؟ چند نمونه از رشته رو قرار بدید براتون کد پترن میذارم

complexcoding
سه شنبه 14 مهر 1394, 19:22 عصر
الان شما چی میخوای؟ چند نمونه از رشته رو قرار بدید براتون کد پترن میذارم

ممنونم
ببینید یک صفحه متن دارم با سطرهای زیاد. مثلا داخل نوت پد ویندوز یک عالمه متن هست. من میخوام هرجا محمد رو دیدم تا 8 یا 9 حرف بعدش رو لازم دارم. مثلا:
قدذقثذلقثذقثذرقث
قثدذقثذللقثذقث
قثخالضخقثخ4434
لضقثلضق444
قثلقثذثق محمد= 25 قثبلضقث
ثلضثقلثض

تو متن بالا میخوام بدونم محمد چه نمره ای گرفته؟ چطوری باید اینکارو بکنم. البته بگم متن داخل نوت پد خیلی خیلی بیشتر از این حرفاست. این کمه فقط مثال زدم.
ممنونم

nunegandom
سه شنبه 14 مهر 1394, 21:16 عصر
(?<=محمد)(.*){9}

البته احتمالا این چیزی نیست که میخواین ولی خوب با توضیخاتی که دادین همین قدر میشه کار کرد
محمد رو پیدا میکنه و ۹ کاراکتر بعد رو میاره