نمایش نتایج 1 تا 26 از 26

نام تاپیک: عبارت باقاعده - Regular Expression

  1. #1
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    Post عبارت باقاعده - Regular Expression

    آموزش عبارات باقاعده در سکوی .NET Framework همراه با نرم افزار Expresso
    قبل از پرداختن به مفاهیم اصلی عبارات باقاعده و ذکر مثالها توصیه می کنم ابتدا شما نرم افزار Expresso را که جهت تمرین و تست الگو های عبارات باقاعده طراحی و تولید شده است را از نشانی http://www.ultrapico.com دانلود کنید. این نرم افزار با استفاده از کتابخانه کلاسهای موجود در .NET Framewor می تواند شما را در تولید الگوهای عبارات باقاعده و استفاده از آنها در برنامه هایتان یاری نماید. ضمن این که Expresso دارای یک سری الگوهای عبارات باقاعده از پیش نوشته شده است که شما را در دسترسی سریع و آسان به الگوی عبارت باقاعده مدنظرتان بسیاری یاری خواهد کرد.
    یک مفهوم نام آشنا در بسیاری از سیستمهای کامپیوتری استفاه از کاراکترهای "جایگزین شونده" یا "wildcard" ها در الگوهای تطبیقی(pattern matching) می باشد. اگر شما قصد داشته باشید تمامی فایلهای Microsoft Word را در یکی از شاخه های ویندوز بیابید از عبارت "*.doc"، برای جستجو استفاده خواهید کرد. علامت ستاره (asterisk) به عنوان یک wildcard ی که می تواند هر تعداد از کاراکترها را تطبیق دهد تفسیر خواهد شد.
    در نوشتن برنامه ها یا صفحات وبی که با رشته ها و متون زیاد سر و کله می زنند اکثر اوقات شما به چنین الگوهایی حتی با پیچیدگی ها بسیار بیشتری نیاز خواهید داشت. خوب عبارات باقاعده هم به همین منظور ابداع و تولید شده است. سکوی .NET Framework یک مجموعه کامل از کتابخانه کلاس هایی که کاربرد عبارات باقاعده را در برنامه های کاربردی آسان می سازد برای شما فراهم کرده است. با این کتابخانه شما می توانید به آسانی متنی را جستجو و جایگزین نمایید، عنوان های پیچیده را رمزگشایی کنید، زبانها مختلف را تجزیه کنید یا اینکه متنی را اعتبار سنجی نمایید.
    بهترین راه برای یادگیری سینتکس اسرار آمیز عبارات باقاعده استفاده از مثالها و تجربه کردن آنها در برنامه های مختلف می باشد. این مقاله اصول عبارات باقاعده را به شما معرفی خواهد کرد و تعداد زیادی مثال را که در یک فایل کتابخانه Expresso قرار دارد به شما ارائه می دهد. شما می توانید این نرم افزار را از نشانی http://www.ultrapico.com دانلود و در سیستم خود نصب نمایید.اما اصل کاربرد این نرم افزار جهت آزمایش نمودن مثالها و نیز تست کردن صحت عملکرد عبارات باقاعده ای است که خودتان نوشته اید و قصد دارید در برنامه ایتان به کار گیرید. اگر اجازه بدید شروع کنیم:
    تعدادی مثال ساده . . .(ادامه مقاله)

    <<باتوجه به اینکه حجم مقاله زیاد است و سینتکس عبارات باقاعده با کپی و پیست کردن اون در اینجا به هم میریزه مابقی مقاله رو می توانید در وبلاگم مطالعه کنید). ضمنا از کلیه دوستان خواهش می کنم فقط در مورد موضوع مطرح شده (یعنی عبارات باقاعده) تاپیک زده و بحث نمایند و مسائل متفرقه را به صورت پیام ارسال نمایند. با تشکر
    آخرین ویرایش به وسیله piroozman : شنبه 09 خرداد 1388 در 20:59 عصر دلیل: اضافه کردن توضیح

  2. #2
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    34
    پست
    2,225

    نقل قول: عبارت باقاعده - Regular Expression

    شما دوست عزيز ميتونيد با جمع و جور كردن مقاله تون، با مجله برنامه نويس همكاري كنيد!
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  3. #3
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    Post تعریف گروه موازنه -Balancing Group Definition

    در اين مقاله سعي در تشريح يکي از ساختارهاي پيچده و بحث انگيز با عنوان تعريف گروه موازنه با ذکر يک مثال را دارم. سينتکس اصلي گروه موازنه به صورت:
    (?<name1-name2>subexpression)
    است.
    اين ساختار تطبيق قبلي که به وسيله گروه name2تعيين شده است را حذف مي کند و
    در گروه name1فاصله (interval)ميان آنچه که گروه name2 تطبيق داده تا آنچه که گروه جاري (Balancinggroup) تطبيق داده است، ذخيره مي کند. اگر در گروه name2 مقداري وجود نداشته باشد، عمل تطبيق عقبگرد خواهد کرد.( backtrack - قابليت يک سيستم خبره در آزمايش راه حل هاي مختلف جهت يافتن يک پاسخ. راه حل هاي مختلف را مي توان همچون شاخه هاي يک درخت تصور کرد. در اين روش، برنامه مسير يک شاخه را دنبال مي کند و چنانچه بدون يافتن پاسخ به انتهاي آن برد، به عقب بازگشته و شاخه ديگري را آزمايش مي کند.) چون با حذفِ آخرين تطبيق انجام شده به وسيله name2، تطبيق قبلي که به وسيله name2 انجام گرفته شده است، نمايان مي شود، اين ساختار موجب مي شود، پشته حاصل از capture هاي گروه name2 همانند يک شمارشگر (counter) عمل کند و از اين شمارشگر مي توان جهت رديابي (Keep track of- دنبال کردن يک مسير - در مديريت داده ها به دنبال کردن جريان اطلاعات از طريق يک سيستم دستي يا خودکار گفته مي شود.) ساختارهاي تودرتو؛ مانند پرانتزها استفاده کرد(ساختارهاي تودرتو يا nest- گنجاندن يک ساختار در يک ساختار ديگر. به عنوان مثال يک بانک اطلاعاتي ممکن است يک جدول تودرتو (جدولي در جدول ديگر)، يک برنامه ممکن است يک رويه تودرتو(رويه اي که در يک رويه ديگر تعريف شده باشد) و يک ساختار داده اي نيز ممکن يک رکورد تودرتو (رکوردي که حاوي فيلدي است که خود يک رکورد است) داشته باشد. در اينجا منظور ساختارهاي تودرتو ايجاد شده به وسيله پرانتزها يا انواع براکتها مي باشد.). در اين ساختار، name1 اختياري است؛ و مي توان الگوي فوق را به شکل
    (?<-name2>subexpression)نوشت. شما مي توانيد از single quote ها به جاي angle brackets استفاده کنيد؛ مانند (?'name1-name2'subexp). براي درک بهتر عملکرد اين ساختار به مابقی مقاله و مثال ارائه شده که در وبلاگم قراردارد مراجعه کنید.
    آخرین ویرایش به وسیله piroozman : شنبه 23 خرداد 1388 در 23:49 عصر دلیل: ویرایش متن

  4. #4

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط piroozman مشاهده تاپیک
    آموزش عبارات باقاعده در سکوی .NET Framework همراه با نرم افزا
    Expresso
    .........
    منبع:
    http://www.codeproject.com/KB/dotnet/regextutorial.aspx
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  5. #5

    نقل قول: عبارت باقاعده - Regular Expression

    با سلام . . .

    چه Regex در برنامه Expresso بنويسم تا خروجي هاي زير كه توي عكس مشخصه ظاهر بشه .
    يك روز ور رفتم اما نتونستم يه چيز درست از توش در بيارم .


    http://www.justupit.com/files/X3RTLLAK/test.jpg


    ممنون .

  6. #6

    نقل قول: عبارت باقاعده - Regular Expression

    با سلام . . .

    چه Regex در برنامه Expresso بنويسم تا خروجي هاي زير كه توي عكس مشخصه ظاهر بشه .
    يك روز ور رفتم اما نتونستم يه چيز درست از توش در بيارم .


    test.jpg


    ممنون .
    عکس های ضمیمه عکس های ضمیمه

  7. #7
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hrbaban مشاهده تاپیک
    با سلام . . .

    چه Regex در برنامه Expresso بنويسم تا . . . .

    ممنون .
    سلام
    شما به طور دقیق بیان نکردید که در متن خود به دنبال چه عبارت هایی می گردید. الگوی خاصی از تصویر الصاقی شما عاید بنده نشد اما کدی که نوشتم رو امتحان کنید. اگر بیشتر توضیح بدهید که به دنبال چه چیزی هستید شاید بهتر بتونم کمکتون کنم. Regex ای که بنده با توجه به تصویر ارسالی شما به شرح ذیل است
    [A-Z]-?\d*\.\d*

    توضیح Regex:
    1-
    [A-Z]
    حروف بزرگ انگلیسی را تطبیق می دهد(فقط یک حرف)
    2-
    -?
    تعداد صفر یا یک - را تطبیق می دهد
    3-
    \d*
    هر تعداد اعداد (از صفر تا هر چندتا) را تطبیق می دهد. لازم به ذکر است اگر شما بخواهید تعداد اعداد را در یک تعدادی خاص تطبیق دهید(مثلا حداقل 1 عدد و حداکثر 3 عدد) باید از عبارت
    \d{1,3}
    استفاده کنید و برای تطبیق یک یا بیشتر عدد از کد
    \d+
    استفاده کنید.
    4- و در نهایت
    \.
    کاراکتر نقطه (یا period) را تطبیق می دهد. چون این کاراکتر جزء متاکاراکتر ها محسوب می شود شما باید آنرا فراری دهید (اصطلاحاً escape کنید.)
    موفق باشید.

  8. #8

    نقل قول: عبارت باقاعده - Regular Expression

    راستش من يه فايل txt دارم كه توش يه سري x , y هستش با اعدادي كه جلوشون نوشته شده.

    من ميخوام يه برنامه بنويسم كه يه فايل txt رو بررسي كنه و كليه x , y ها به همراه مقادير جلوشون رو در بياره و بعد روي اين x , y ها يه سري محاسبه انجام بشه. اما با توجه به اينكه ترتيب قرار گيري x , y ها متفاوت هستش يكم كار رو سخت ميكنه .

    مثلا توي تصوير ، در سطر اول و آخر، x, y توي يه خط قرار دارند ولي در بقيه جاهاش يا فقط x هست و يا y.

    به عبارت ساده تر مثل اين بمونه كه يه فايل متني ، خط به خط بررسي بشه و در هر خط ، همه چيز حذف بشه به جز x , y هاش و مقادير جلوشون .


    حالا دنبال يه الگو ميگردم كه اين كار رو بكنه .

    با سپاس.

  9. #9
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hrbaban مشاهده تاپیک
    راستش من يه فايل txt دارم كه توش يه سري x , y هستش با اعدادي كه جلوشون . . . .
    با سپاس.
    سلام
    اگر شما می خواهید فقط X و Y ها را تطبیق دهید در کلاس کاراکتر
    [A-Z]
    فقط دو حرف X و Y را بنویسد یعنی
    [XY]
    . اگر می خواهید حروف کوچک x و y نیز تطبیق پیدا کند می بایست کلاس کاراکتر خود را به شکل
    [XYxy]
    بنویسید.
    عبارتی که بنده نوشته بودم تمامی حروف بزرگ انگلیسی را تطبیق می داد. اما فکر کنم با توضیح فوق بتوانید انچه را که می خواهید در متن خود بیابید.
    باز هم اگر مشکلی در این خصوص داشتید بنده در خدمت شما هستم
    سئوال خود را باز هم واضحتر بیان کنید تا شاید بتوانم کمکتان کنم
    موفق باشید

  10. #10

    نقل قول: عبارت باقاعده - Regular Expression

    آقا پيروز قبل از هر چيز از توجهتون ممنونم .
    اما من اين كار رو كردم ولي توي اين حالت x,y ها هر كدوم در يه سطر جدا نوشته ميشند ، در صورتي كه من ميخوام اگر كنار هم هستند به صورت كنار هم بيان .

    من فكر كنم خيلي واضح توضيح دادم اما به عكس زير يه نگاه بندازيد شايد بهتر كمك بكنه .

    من ميخوام يه فايل متني ، خط به خط بررسي بشه و در هر خط ، همه چيز حذف بشه به جز x , y هاش و مقادير جلوشون .
    با توجه به تصوير ، فرض كن توي يه فايل txt ، نوشته هاي سمت چپ (خاكستري) قرار داره و من حالا با يه برنامه ميخوام ، به شكل سمت راست (سفيد) در بياد .
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 02.jpg‏ (29.4 کیلوبایت, 428 دیدار)

  11. #11
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hrbaban مشاهده تاپیک
    آقا پيروز قبل از هر چيز از توجهتون ممنونم .
    من ميخوام يه فايل متني ، خط به خط بررسي بشه و در هر خط ، همه چيز حذف بشه به جز x , y هاش و مقادير جلوشون .
    با توجه به تصوير ، فرض كن توي يه فايل txt ، نوشته هاي سمت چپ (خاكستري) قرار داره و من حالا با يه برنامه ميخوام ، به شكل سمت راست (سفيد) در بياد .
    سلام
    دوست عزیز، شما باید کل متن فایل تکست خود را به عنوان رشته ی ورودی به موتور عبارت باقاعده بدی و با جستجو در متن عبارتهایی که لازم داری رو روی یک فایل دیگه بنویسی.
    فایل txt مورد نظرت رو برام بفرست تا روش کار کنم و اگه نتیجه گرفتم برات ارسالش کنم.
    موفق باشی

  12. #12
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آبان 1387
    پست
    62

    Thumbs down نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hrbaban مشاهده تاپیک
    آقا پيروز قبل از هر چيز از توجهتون ممنونم .
    اما من اين كار رو كردم ولي توي اين حالت x,y ها هر كدوم در يه سطر جدا نوشته ميشند ، در صورتي كه من ميخوام اگر كنار هم هستند به صورت كنار هم بيان .

    من فكر كنم خيلي واضح توضيح دادم اما به عكس زير يه نگاه بندازيد شايد بهتر كمك بكنه .

    من ميخوام يه فايل متني ، خط به خط بررسي بشه و در هر خط ، همه چيز حذف بشه به جز x , y هاش و مقادير جلوشون .
    با توجه به تصوير ، فرض كن توي يه فايل txt ، نوشته هاي سمت چپ (خاكستري) قرار داره و من حالا با يه برنامه ميخوام ، به شكل سمت راست (سفيد) در بياد .
    با سلام.
    با توجه به توضیحات دوست عزیزمون جناب pirooz در چند پست قبل فکر میکنم متوجه بشید این الگو چطور کار میکنه:
    [XYxy]-?\d+\.?\d*
    و بتونید امتحانش هم بکنید.
    خواستتون رو براورده میکنه؟ به نظر میاد مشکلی نداشته باشه...

  13. #13

    نقل قول: عبارت باقاعده - Regular Expression

    آقا پيروز فايل متني رو براتون ارسال كردم .
    نگاهش كردين ؟؟؟؟؟؟

  14. #14

    نقل قول: عبارت باقاعده - Regular Expression

    سلام سوال من اینه:
    برنامه ای بنویسید که وروی های آن یک عبارت با قاعده و نام یک پرونده باشد و همه خطوط از پرونده را که حاوی زیر رشته تولید شده آن عبارت با قاعده باشد را تولید نماید.
    اگه ممکنه بهم میل کنیدbahar_1868@yahoo.com

  15. #15
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    با سلام و احترام خدمت کلیه عزیزانی که در حال حاضر دارند این تاپیک رو مطالعه می کنند. همانطور که می بینید موضوع این تاپیک در خصوص عبارات باقاعده می باشد. بنده مدتهاست که کتابی رو در این خصوص نوشته بودم و فقط یک فصل اون مونده بود و به خاطر برخی مشکلات نمی تونستم و وقت نمی کردم اون فصل رو به انتها برسونم. خدا قسمت کرد و بالاخره کتاب رو تموم کردم.
    کتاب حاضر، که به صورت الکترونیکی است، سعی در شناخت یکی از زبانهای مهم و پرکاربرد امروز دنیا به نام عبارات باقاعده (Regular Expressions
    ) دارد. عبارات باقاعده خود به تنهایی امکان تولید نرم افزار و برنامه های کاربردی را ندارند بلکه ابزاری هستند در اختیار سایر زبان های برنامه ساز مانند C#‎‎‎‎‎‎‎‎‎‎، VB،PHPو . . . . از دستورات و امکانات این زبان در تولید کامپایلرها، صفحات وب هوشمند و دقیق و برنامه های کاربردی مختلف در جهت تجزیه و تحلیل متون و رشته ها و جایگزینی آنها با سایر متون یا رشته ها استفاده می شود.
    این کتاب بیشتر بر استفاده از این زبان جهت تجزیه و تحلیل رشته ها و متون در برنامه های کاربردی و کتابخانه های .NET Freamwork تولید شرکت مایکروسافت تاکید دارد. هر چند با مطالعه این کتاب شما خواهید توانست حتی در صفحات وب و سایر برنامه ها از ساختارهای تعریف شده برای عبارات باقاعده بهره برده و به اهداف خود برسید.
    این کتاب در 7 فصل به رشته تحریر در آمده است که شامل از تعریف انواع کاراکترها، اجزای اصلی عبارات باقاعده شروع شده و به نحوه به کارگیری آن در زبانهای مختلف به خصوص دو زبان C#‎‎‎‎‎‎‎‎‎‎ و VB خاتمه می یابد.
    هر چند سعی در این بوده که این کتاب بدون اشتباه باشد اما از کلیه عزیزانی که این کتاب را مطالعه می کنند تقاضا دارم نظرات، پیشنهادات، اشتباهات تایپی، برنامه ای، محتوایی و هر آنچه که در بهبود مطالب این کتاب موثر می باشد به نشانی Piroozman@gmail.com ارسال نمایند.
    کلیه حقوق مادی و معنوی این کتاب نزد آقای محمد محمدی پیروز (نویسنده ی کتاب) محفوظ می باشد و استفاده از مطالب این کتاب با ذکر منبع بلامانع است.
    این کتاب به صورت فایل PDF بوده و براي دريافت آن پيام خصوصي ارسال كنيد. موفق و مويد باشيد
    آخرین ویرایش به وسیله piroozman : شنبه 03 آبان 1393 در 15:42 عصر

  16. #16

    نقل قول: عبارت باقاعده - Regular Expression

    سلام
    ببخشین من یه سوال داشتم من میخوام یه متنی رو از تو یه سایتی بردارم و بزارم تو یه لیبل تو نرم افزارم
    میخواستم html agility یاد بگیرم ولی گفتن regex بهتره ولی آخه این چیزایی که شما نوشتید هیچ ربطی به کاری که من میخوام بکنم نداره
    ینی به نظر شما من باید ریجکس باد بگیرم؟؟؟
    حالا این عبارات با قاعده هم گیریم فول شدم خب حالا چطوری باش متن از تو سایت بردارم اخه؟؟؟

  17. #17
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    سلام. شما به راحتی با استفاده از الگوهایی که در عبارت باقاعده ایجاد می کنید، متنی را که با الگو مطابقت دارد را یافته و آنرا از داخل متن یا هر فایل دیگری که مدنظر دارید استخراج کنید. اگر کتابی که بنده در این خصوص نوشتم را مطالعه کنید سریع به جواب خواهید رسید. کتاب مورد نظر بسیار کامل است و شامل الگوها، مثال ها و سناریوهای مختلفی است و به دو زبان csharp و vb است. شما دقیقا بفرمایید دنبال چه متنی هستید، انشالله از دستم بر بیاد الگوی آنرا برای شما ارسال خواهم کرد و بیشتر شما را راهنمایی خواهم کرد. موفق باشید

  18. #18

    نقل قول: عبارت باقاعده - Regular Expression

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

  19. #19
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    شما می بایست متن موجود در یک صفحه وب را در یک فایل از نوع String قرار بدید و سپس در داخل اون به دنبال متن مورد نظر خودتون بگردید. به طور مثال:
    System.Net.WebClient wc = new System.Net.WebClient(); 
    byte[] raw = wc.DownloadData("http://www.yoursite.com/resource/file.htm");
    string webData = System.Text.Encoding.UTF8.GetString(raw);

    یا
    System.Net.WebClient wc = new System.Net.WebClient(); 
    string webData = wc.DownloadString("http://www.yoursite.com/resource/file.htm");

    البته فکر کنم سرعت اجرای این کدها بسته به سرعت اینترنت شما یا سرعت سرور سایت مورد نظر تفاوت داشته باشد.
    موفق باشید

  20. #20

    نقل قول: عبارت باقاعده - Regular Expression

    باسلام
    من در کد HTML زیر می خوام با استفاده از RegEx اعداد مختصات جغرافیایی بعد از عبارت :'LAT' رو استخراج کنم، عبارات زیادی رو هم استفاده کردم که در برخی موارد صحیح هستند، اما من نیاز دارم که دقیقا مقدار روبروی:'LAT' بعد از عبارت Marker به عنوان اولین Match برگردانده بشه، میشه لطفا من رو راهنمایی کنید، کد:

    <ul class="entityInfoContactsList">
    <li>
    مدیر -
    علی رضا اثنی عشری
    </li>
    <li class="entity-contact-address" itemprop="address" itemtype="http://schema.org/PostalAddress" itemscope="">
    <div class="contact-Icons address-Icon dInBlock"></div>
    تهران - منطقه 7 - خرمشهر (آپادانا) - خ. عربعلی (نوبخت) - ک. شورشی - پ. 7
    - ک.پ :
    <span itemprop="postal-code">1988744313</span>
    <a class="location-map" href="#" data="{'cityName': 'تهران', 'bound': [51.054783544, 35.5567062270001, 51.8901788740001, 35.93970389], 'center':{'ID':'134551-1', 'LAT':35.7296505636096, 'LON':51.4680310847103}, 'marker':{'ID':'134551-1', 'LAT':35.81117, 'LON':51.415537}}"></a>
    </li>
    <li>
    <div class="contact-Icons telefax-Icon dInBlock"></div>
    <img class="img-base64"

  21. #21
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    سلام. براي اين كار شما بايد از اعلان zero-width نگاه مثبت به عقب استفاده كنيد. اين اعلان به عقب (یا سمت چپ) نگاه می کند و اگر subexpression (مانند پیشوندها و در مورد مشكل شما عبارت
    'LAT':
    ) در موقعیت چپ رشته وجود داشته باشد تطبیق انجام می شود. برای مثال
    (?<=19)99
    اعداد 99 را که قبل از آنها عدد 19 باشد را تطبیق می دهد.
    براي مشكل شما كد پيشنهادي بنده عبارت زير مي باشد. براي تست مي توانيد از نرم افزار Expresso استفاده كنيد.
    (?<='LAT':)\d\d\.\d+
    اين كد فقط اعداد مربوط به مختصات جغرافيايي رو بر مي گرداند به شرطي كه قبل از آن پيشوند مورد نظر شما تطبيق يافته باشد.
    www.radiansoft.ir

  22. #22
    کاربر دائمی آواتار hosseinrasouli
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    بوشهر
    سن
    35
    پست
    162

    نقل قول: عبارت باقاعده - Regular Expression

    مهندس من کد html سایت را در یک string ریختم حالا میخوام پاراگراف هایم را برگردانم. آنهایی که ما بین تگ <p> قرار دارند

    و در مرحله بعدی بتوانم تگ های اضافی مانند <p><a><li><h2> , ... را از بین ببرم

    از چه الگویی استفاده کنم؟

  23. #23
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hosseinrasouli مشاهده تاپیک
    مهندس من کد html سایت را در یک string ریختم حالا میخوام پاراگراف هایم را برگردانم. آنهایی که ما بین تگ <p> قرار دارند

    و در مرحله بعدی بتوانم تگ های اضافی مانند <p><a><li><h2> , ... را از بین ببرم

    از چه الگویی استفاده کنم؟
    مي توانيد از الگوي زير استفاده كنيد. در اين الگو، تگهاي <p> و تمامي صفات آن شناسايي شده ولي تطبيق داده نميشود بلكه هر آنچه مابين اين تگ قرار دارد طبيق داده خواهد شد.
    الگو:
    (?<=<(?i:p.*)>).+(?=</(?i:p)>)

    مثال:
    <p>string</P>
    نتيجه به كارگيري الگوي روي مثال:
    string
    توضيح كامل الگو:
    در الگوی ارائه شده ساختار (?<=<(?!p.*)>) یک zero-width نگاه مثبت به عقب است. این ساختار به دنبال تگ باز <p> با هر شمار صفت می‌گردد ولی آنرا تطبیق نمی‌دهد. به منظور ‌این که بتوانیم ویژگی ignore case را فعال کنیم عبارت p.* را داخل ساختار (?i:subexp) قرار داده‌ایم. جهت بررسی وجود تگ بسته </span> نیز از zero-width نگاه مثبت به جلو به شکل (?=</(?i:p)>) استفاده شده است. در مورد تطیبق دوم تگهای باز و بسته p با حروف بزرگ و کوچک نوشته شده‌اند و ما توانستیم با فعال کردن ignor case به وسیله گروه (?i:subexp) ‌این تگها را نیز شناسایی کنیم. در خصوص ساير تگها مي توانيد فقط نام تگ را عوض كنيد. به فرض اگر به دنبال تگهاي h1 ميگرديد ميتوانيد به جاي حرف p عبارت h1 را در الگو قرار دهيد.
    موفق باشيد.

  24. #24
    کاربر دائمی آواتار hosseinrasouli
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    بوشهر
    سن
    35
    پست
    162

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط piroozman مشاهده تاپیک
    مي توانيد از الگوي زير استفاده كنيد. در اين الگو، تگهاي <p> و تمامي صفات آن شناسايي شده ولي تطبيق داده نميشود بلكه هر آنچه مابين اين تگ قرار دارد طبيق داده خواهد شد.
    الگو:
    (?<=<(?i:p.*)>).+(?=</(?i:p)>)

    مثال:
    <p>string</P>
    نتيجه به كارگيري الگوي روي مثال:
    string
    توضيح كامل الگو:
    در الگوی ارائه شده ساختار (?<=<(?!p.*)>) یک zero-width نگاه مثبت به عقب است. این ساختار به دنبال تگ باز <p> با هر شمار صفت می‌گردد ولی آنرا تطبیق نمی‌دهد. به منظور ‌این که بتوانیم ویژگی ignore case را فعال کنیم عبارت p.* را داخل ساختار (?i:subexp) قرار داده‌ایم. جهت بررسی وجود تگ بسته </span> نیز از zero-width نگاه مثبت به جلو به شکل (?=</(?i:p)>) استفاده شده است. در مورد تطیبق دوم تگهای باز و بسته p با حروف بزرگ و کوچک نوشته شده‌اند و ما توانستیم با فعال کردن ignor case به وسیله گروه (?i:subexp) ‌این تگها را نیز شناسایی کنیم. در خصوص ساير تگها مي توانيد فقط نام تگ را عوض كنيد. به فرض اگر به دنبال تگهاي h1 ميگرديد ميتوانيد به جاي حرف p عبارت h1 را در الگو قرار دهيد.
    موفق باشيد.
    ممنون مهندس . حالا اگر بخواهم تگ های اضافی مانند <a> </a> , <h2> و ... را از متنم حذف کنم . ?? مثل اینکه هرچی بین <> باشه
    /b<*>/b 

  25. #25
    کاربر دائمی آواتار piroozman
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    سن
    48
    پست
    217

    نقل قول: عبارت باقاعده - Regular Expression

    نقل قول نوشته شده توسط hosseinrasouli مشاهده تاپیک
    ممنون مهندس . حالا اگر بخواهم تگ های اضافی مانند <a> </a> , <h2> و ... را از متنم حذف کنم . ?? مثل اینکه هرچی بین <> باشه
    /b<*>/b 
    براي شروع تگ ها از الگوي زير استفاده كنيد:
    <\w+\s*[^>]+>\s*

    و براي پايان تگها مي توانيد از الگوي زير استفاده كنيد:
    </\w+\s*>

    در صورتي كه مشكلي داشتيد خوشحال ميشم بتونم كمكتون كنم
    موفق باشيد.

  26. #26
    کاربر دائمی آواتار hosseinrasouli
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    بوشهر
    سن
    35
    پست
    162

    نقل قول: عبارت باقاعده - Regular Expression

    حل شد

    const string HTML_other_PATTERN = @"\{.*?\}|&.*?;|#.*?;";
    static string StripHTML(string inputString)
    {
    return Regex.Replace(inputString, HTML_TAG_PATTERN, string.Empty);
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •