PDA

View Full Version : مشکل در استخراج متن چندسطری با ریجکس



samiasoft
پنج شنبه 20 اردیبهشت 1397, 01:55 صبح
سلام دوستان

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


<"content="استاد رائفی پور#دهمین_صراط#قسمت_دوم
پیرامون #امام_هادی(علیه السلام)
باب ورود به امام زمان از امام هادی است"/>
میبنید که این چند سطری هست ...حالا ارایش ریجکس رو برای استخراج این متن به چه صورت بنویسیم؟:متفکر:

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

content.*.>

336699
پنج شنبه 20 اردیبهشت 1397, 11:26 صبح
سلام
لینکی که این متن داخلش هست رو ارسال کنید تا بررسی شود
البته استفاده از ریجکس برای استخراج متن از بین تگها زیاد جالب نیست.

samiasoft
پنج شنبه 20 اردیبهشت 1397, 12:22 عصر
سلام
لینکی که این متن داخلش هست رو ارسال کنید تا بررسی شود
البته استفاده از ریجکس برای استخراج متن از بین تگها زیاد جالب نیست.

ممنون از توجهتون...با ریجکس من درواقع استفاده خیلی زیادی کردم فقط همین مورد چندخطی رو مشکل دارم

لینک که متن داخلشه از سورس سایت اپارات هست اما اگر در این متن این مورد روپیاده کنیم من جاهای دیگر هم مشکلم حل خواهد شد .

فرض کنید متن بصورت زیر هست :



You want to extract all lines from one starting pattern throughan ending pattern<h1> or from a starting line number up to an ending
line number.
A common example of this is extracting the first
10 lines of a file (line numbers 1 to 10) or just
the body of a mail<h2> message (everything past the blank line)

حال میخواستم کل متن بین تگ <h1> تا <h2> را استخراج کنم. که تعداد سطر بین این دو تگ میتواند متغییر هم باشد.

اگر بتونیم اینتر رو در متن به ریجکس شناسایی کنیم در واقع استفاده از \r\n ولی چطوری؟!

336699
پنج شنبه 20 اردیبهشت 1397, 13:48 عصر
شما چرا از HAP استفاده نمی کنید؟

http://html-agility-pack.net/

danialafshari
پنج شنبه 20 اردیبهشت 1397, 14:03 عصر
ممنون از توجهتون...با ریجکس من درواقع استفاده خیلی زیادی کردم فقط همین مورد چندخطی رو مشکل دارم

لینک که متن داخلشه از سورس سایت اپارات هست اما اگر در این متن این مورد روپیاده کنیم من جاهای دیگر هم مشکلم حل خواهد شد .

فرض کنید متن بصورت زیر هست :



You want to extract all lines from one starting pattern throughan ending pattern<h1> or from a starting line number up to an ending
line number.
A common example of this is extracting the first
10 lines of a file (line numbers 1 to 10) or just
the body of a mail<h2> message (everything past the blank line)

حال میخواستم کل متن بین تگ <h1> تا <h2> را استخراج کنم. که تعداد سطر بین این دو تگ میتواند متغییر هم باشد.

اگر بتونیم اینتر رو در متن به ریجکس شناسایی کنیم در واقع استفاده از \r\n ولی چطوری؟!
با سلام
MatchCollection mc = Regex.Matches(textBox1.Text, "<h1>(?<TagText>.*?)<h2>", RegexOptions.Singleline);
foreach (Match m in mc)
{
MessageBox.Show(m.Groups["TagText"].Value);
}

موفق باشید