PDA

View Full Version : استخراج رشته از رشته



BestFriend
پنج شنبه 21 دی 1391, 23:39 عصر
با سلام من یه رشته ی مرجع دارم مثلا این رشته :


<table>
<td class="aa"><a href='1.php'></a></td>
</tr>
<tr>
<td class="aa"><a href='2.php'></a></td>
</tr>
<tr>
<td class="aa"><a href='3.php'></a></td>
</tr>
<tr>
<td class="aa"><a href='4.php'></a></td>
</tr>
</table>


حالا میخوام تمام رشته هایی که یه فرمت خاصی دارن رو از این رشته جدا کنم یعنی تو مثال بالا تمام خط هایی که شبیه به :

<td class="aa"><a href='4.php'></a></td>

هستند رو جدا کنم و بریزم تو یه رشته ی دیگه یعنی خروجی من بشه :

<td class="aa"><a href='1.php'></a></td>
<td class="aa"><a href='2.php'></a></td>
<td class="aa"><a href='3.php'></a></td>
<td class="aa"><a href='4.php'></a></td>


باید از چه کدی استفاده کنم؟

با تشکر.

mehrdad1991h
پنج شنبه 21 دی 1391, 23:49 عصر
اگر اعداد ای یه متغیر داری که به ترتیب میره بالا اون را مثلا i در نظر بگیرش
بعد بزگترین متغیرت را در بیار
i را همینجور بزرگ کن و رشته را اگر موجود بود ببر یه مکان دیگه
این کار را انقدر ادامه میدی تو یک حلقه تا به بزگترین مقدار اون متغیری که تعریف کردی برسی و تمومش میکنی

در مثال خودت
اول بزگترین متغیر را پیداش کن برابر n بزار
بعد

یه حلقه اینجوری تعریف میکنی
for ( int i =0,i<n,i++)
<td class="aa"><a href='i.php'></a></td>استرینگ کن این خط را

ادامه کدت ....(این خط را جستجو میکنی اگر موجود بود انتقالش میدی اگر نبود هیچ کاری نمیکنی میری سراغ حلقه بعدی

دسترسی به ویژوال نداشتم که کد برات بزارم
یکم فک کن کامل توضیح دادم
موفق باشی

Saber_Fatholahi
جمعه 22 دی 1391, 00:15 صبح
دوست من بهترین حالت استفاده از عبارات منظم هست.
کلاس اون در دات نت Regx هست
موفق وموید باشید

saeidpsl
جمعه 22 دی 1391, 01:47 صبح
بفرما:چشمک:


Regex regx = new Regex(@"<td class=[""'].*[""']><a href='.*'></a></td>", RegexOptions.Singleline);
MatchCollection mactches = regx.Matches(textBox1.Text);
foreach (Match match in mactches)
{
textBox2.Text = match.Value;

}

BestFriend
یک شنبه 24 دی 1391, 20:38 عصر
ممنون دوستان عزیز میشه کار با regex رو یه مقدار توضیح بدید منظورم اون کد هایی هست که تو عبارتش نوشته میشه

@"<td class=[""'].*[""']><a href='.*'></a></td>"

برای هر کاراکتر یه چیز خاص باید بنویسیم ؟ کلا استاندارد نوشتن این کد چه طوریه؟

با تشکر.

FreeMagic
یک شنبه 24 دی 1391, 20:52 عصر
منم قبلا یه همچین کاری میخواستم بکنم (یعنی انجام داده بودم ولی با vb)
کد مرجع بالا 1000 خط بود و می بایستی داخل کد رو بگرده و تگ های خاصی رو جدا کنه (تعدادشون حدود 400 مورد بود) بعد یه پردازش دیگه سر اونا انجام میداد و در نهایت بازم تبدیل به یه کد دیگه میکرد که تقریبا 800 خط میشد خروجی.
این کار زمان بر بود و بیشتر اوقات وسط کار (هر بار در قسمتی از کار) یه پیغام خطا میداد و خارج میشد
برای انجام همچین کارهایی در c# که زمان بر هستن و ممکنه تا نیم ساعتی طول بکشه چه کار باید کرد که به پیغام خطا برخورد نکرد؟
منم قبلا مشکل این دوستمون رو داشتم که برطرف شد ولی دائما وسط کار ارور میداد