PDA

View Full Version : حرفه ای: نیاز به راهنمایی در جدا کردن متن ها



soheilnew
یک شنبه 23 آبان 1395, 11:53 صبح
سلام دوستان
من میخوام عنوان های سرچ شده در گوگل را با علامت , از هم جدا کنم
بصورت کلی بگم که میخوام یه تگ ساز بسازم که وقتی عنوانی رو کاربر وارد کنه بره از گوگل سرچ کنه و نمایش بده
حالا کد زیر میتونم عنوان رو بگیرم ولی فقط یه دونه میتونم
میخوام حداقل 20 تا باشه
اینم کد :

string str1 = richTextBox2.Text;
int i = str1.IndexOf(",event)") + 25;
str1 = str1.Substring(i, str1.Length - i);
i = str1.IndexOf("</span></a></h3><div");
str1 = str1.Substring(0, i);
richTextBox3.Text = str1;}

Mahmoud.Afrad
دوشنبه 24 آبان 1395, 15:06 عصر
در مورد Regular Expression جستجو کنید.

soheilnew
دوشنبه 24 آبان 1395, 16:56 عصر
در مورد Regular Expression جستجو کنید.

مطالبی که سرچ کردم در مورد regex کاملا پیچیده بود
برای همین تاپیک زدم لطفا نگید سرچ کنم
خیلی سرچ کردم ولی به نتیجه نرسیدم
بهترین چیزی که پیدا کردم این بود:

static void Main(string[] args)
{
string input = "<div>This is a test</div><div class=\"something\">This is ANOTHER test</div>";
string pattern = "(<div.*>)(.*)(<\\/div>)";

MatchCollection matches = Regex.Matches(input, pattern);
Console.WriteLine("Matches found: {0}", matches.Count);

if (matches.Count > 0)
foreach (Match m in matches)
Console.WriteLine("Inner DIV: {0}", m.Groups[2]);

Console.ReadLine();
}

mr_ayma
سه شنبه 25 آبان 1395, 11:58 صبح
دوستان خواهش میکنم کمک کنید
اگه هم هزینه داره مشکلی نیست کارم گیره

راستش من هنوز دقیق متوجه شما نشدم ، میخوای یه متن این حالتی داشته باشی

strt1,strt2,str3,str4,str5,str6,..strN

که این متن رو کاربر وارد می کنه ؟! ولی نباید بیشتر از 30 رشته وارد کنه ؟ درست ملتفت شدم عایا ؟

soheilnew
سه شنبه 25 آبان 1395, 12:06 عصر
راستش من هنوز دقیق متوجه شما نشدم ، میخوای یه متن این حالتی داشته باشی

strt1,strt2,str3,str4,str5,str6,..strN

که این متن رو کاربر وارد می کنه ؟! ولی نباید بیشتر از 30 رشته وارد کنه ؟ درست ملتفت شدم عایا ؟

سلام
یه متن اچ تی ام ال داریم به این صورت

kjfawefoa <h2>متن مورد نظراولین </h2> wefawoef
roipasdkfplskfal <h2>دومین متن مورد نظر</h2> skgaskgakglsakg
sdfgkojgkore <h2> سومین متن مورد نظر</h2> jg9sergwyu6
که در داخل ریچ تکست باکس 1 هست
حالا میخوام وقتی رویه یه دکمه کلیک میکنیم عنوان های بین <h2> و </h2> داخل ریچ تکست باکس دیگه جداسازی بشه وباعلامت , از هم جدا بشن
همونطوری که خودتون عرض کردید
strt1,strt2,str3,str4,str5,str6,..strN

mr_ayma
سه شنبه 25 آبان 1395, 12:31 عصر
سلام
یه متن اچ تی ام ال داریم به این صورت

kjfawefoa <h2>متن مورد نظراولین </h2> wefawoef
roipasdkfplskfal <h2>دومین متن مورد نظر</h2> skgaskgakglsakg
sdfgkojgkore <h2> سومین متن مورد نظر</h2> jg9sergwyu6
که در داخل ریچ تکست باکس 1 هست
حالا میخوام وقتی رویه یه دکمه کلیک میکنیم عنوان های بین <h2> و </h2> داخل ریچ تکست باکس دیگه جداسازی بشه وباعلامت , از هم جدا بشن
همونطوری که خودتون عرض کردید
strt1,strt2,str3,str4,str5,str6,..strN

با فرض اینکه من دو تا تکست باکس دارم ، باکس اول همین متن شما که Html داره داخلش هست و باکس دوم قراره هر چی که عنوان های بین <h2> و </h2> که با کاما جدا شدن قراره می گیره .

اول فضای نام رو رو اضافه می کنیم .



using System.Text.RegularExpressions;


دو تا تکست باکس می زاریم و یه باتن . در رویداد کلیک باتن این کد رو می نویسیم ، دقت کنید داخل Textbox1 همین متنی رو که اینجا دارید بنویسید



string input = textBox1.Text;
string pattern = "<h2.*?>(.*?)<\\/h2>";

MatchCollection matches = Regex.Matches(input, pattern);
MessageBox.Show( matches.Count.ToString());

if (matches.Count > 0)
foreach (Match m in matches)
{
// MessageBox.Show(m.Groups[1].ToString());
textBox2.Text = textBox2.Text + "," + m.Groups[1].ToString();

}




اگه نتونستین از این کد استفاده کنید بگین تا فایل سی شارپشو اتچ کنم .
پ ن :تا جایی که من یادمه از لحاظ ادبی نباس به کسی بگیم «عرض کردید » .

soheilnew
سه شنبه 25 آبان 1395, 13:05 عصر
تشکر دوست عزیز
میشه کاری کنید که بجای تگ های اچ 2 از تگ های دیگه استفاده کرد
مثلا

<span dir="rtl">متن مورد نظر ما</span></a></h3>
و در ضمن اون مسیج باکس هم نباشه
در مورد اون جمله ادبی هم منظور بدی نداشتم ببخشید

soheilnew
چهارشنبه 26 آبان 1395, 12:27 عصر
دوستان لطفا کمک