0 امتیاز
قبل در برنامه نویسی توسط (760 امتیاز)
برچسب گذاری دوباره قبل توسط
فکر می کنم در دات نت 3.5 (به قول یه بنده خدایی درستش اینه بخوانید: سه نقطه پنج!) به بعد اضافه شده باشه

کلا" چی هست و چه کارایی داره؟

2 پاسخ

+1 امتیاز
قبل توسط (7.8هزار امتیاز)
یک« عبارت باقاعده » (regular expression) یا به اختصار regex ،الگویی است که بخش معینی از متن را مشخص می کند.
یک عبارت باقاعده، که به الگو هم معروف است، عبارتی است که مجموعه ای از رشته های کاراکتری را توصیف می کند . عبارت باقاعده معمول توصیف دقیقی از یک مجموعه است، بدون اینکه نیاز باشد همه ی اعضای آن مجموعه ذکر شود.

به عنوان مثال، مجموعه ای که شامل هر سه رشته متنی    ”Händel” و ”Handel”, “Haendel”  باشد می تواند به کمک یک الگو چنین توصیف شود :
H(ä|ae?)ndel

 عبارات باقاعده در بسیاری از ویرایشگرهای متنی، ابزارهای سودمند(utility)،و زبان های
برنامه نویسی برای جستجو و پردازش متن، به کار گرفته می شوند. به عنوان مثال، بیشتر زبان های
برنامه نویسی مثل Tcl و Perl, Ruby, Awk موتورهای پردازش regular expression  دارند که ذاتا با
گرامر این زبان ها تلفیق شده است.

نتیجه گیری اینکه  RegExp برای انجام عملیات جستجو برای کلمات و یا کاراکترهای مورد نظر در متن یک صفحه استفاده می شود .
+1 امتیاز
قبل توسط (7.1هزار امتیاز)

- تعریف عبارت باقاعده(regular expression)
عبارت با قاعده یا منظم (Regular expressions)عبارتی است که بتوان آن را از روی حروف الفبا و رشته تهی و با استفاده از عملگرهای اتحاد ، اتصال ، * یا + ایجاد کرد.

-کاربرد Regular expressions
**عبارات با قاعده روش های قدرتمند ، راحت و کارا برای پردازش متن ارائه می کنند. از جمله موارد کاربرد Regular expressions می توان به اعتبار سنجی آدرس پست الکترونیک ، کلمه رمز ، .. اشاره نمود.( عبارات با قاعده اغلب اوقات برای این مورد استفاده قرار می گیرند که مشخص کنند آیا یک رشته با یک الگوی مشخص تطابق دارد یا نه ، به طور مثال آیا رشته مورد نظر شبیه به کد پستی یا شماره تلفن یا آدرس ایمیل مشخصی می باشد یا نه.)
**عبارات با قاعده به ما اجازه می دهد برای پیدا کردن الگوی کاراکتری خاص به سرعت مقدار زیادی از متن را تجزیه نموده و یا رشته ای را از متنی استخراج، ویرایش ، جایگذاری یا حذف نموده و یا حتی امکان اضافه کردن رشته استخراج شده از متن به یک مجموعه برای تولید گزارش را به ما میدهد .
***در خیلی از برنامه هایی که با رشته ها ارتباط دارند( همچون پردازش فایل HTML و یا تجزیه فایل log یا تجزیه عنوان HTTP ) عبارات با قاعده ابزاری ضروری می باشند.

- Regular expressionsدر .net
در دات نت Regular expressions  از کاراکتر های unicode، با استفاده از عملگرهای ؟ ، + ،*، | و. .. ایجاد میشود.در دات نت هم فضای نام ( name space)و کلاسهایی برای استفاده  از عبارات با قاعده وجود دارد. کلاسهای عبارات باقاعده موجود در فریم ورک دات نت  قسمتی از کتابخانه کلاس پایه می باشند که در این صورت هر زبان یا ابزاری که به زبان مشترک زمان اجرا (CLI) رجوع کند می تواند از این کلاس ها استفاده نماید.عبارات با قاعده درون چارچوب دات نت بیشترین ویژگی های مورد پسند در دیگر زبانها همچون پرل(Perl) و.. را دارا بوده ضمن اینکه شامل دیگر خصوصیات تقریبا منحصر بفرد همچون تطبیق راست به چپ و کامپایل در هنگام اجرا نیز می باشد.
چند مثال از کاربرد عبارات با قاعده در تطبیق
1) این مثال رشته هایی که با کارکتر خاص شروع میشوند را مشخص می کند:
کاراکتر ^ شروع رشته را تطبیق میدهد به طور مثال good^ با رشته های good morning , good evening , ... تطبیق میکند.

2) برای تطبیق انتهای رشته از کاراکتر $ استفاده میکنیم به طور مثال $ere با رشته های Where , There مطابقت میکند.

3) دسته کاراکترها [Character Classes] به ما اجازه میدهد مجموعه ای از کاراکترها را مشخص کنیم به طور مثال دسته [aeiou] با رشته "Hey" تطابق دارد ولی با "Zzz"نه چون باید حداقل شامل یکی از کاراکتر های موجود در دسته باشد.

4)بعضی مواقع می خواهیم یک تعداد عدد مشخص را با یک الگوی مشخصی تطبیق دهیم برای مثال یک کد پستی 5 رقمی را در نظر بگیرید بنابراین به این شکل نوشته می شود:

^ [0-9] {5} $ یا ^\d {5 }$
(از راست به چپ)یعنی ابتدای رشته را تطبیق دهد ، با 5 رقم دنبال کند و بالاخره انتهای رشته را دنبال نماید به طور مثال این عبارت باقاعده با عدد 12345 که به طور فرضی یک کد پستی است تطابق دارد.

نکته :دستور زبان یک عبارت باقاعده شامل تعدادی خصیصه می باشد که می توان با هم ترکیب نمود به طور مثال میتوان بوسیله ( ? !:) خاصیت غیر حساس بودن به بزرگ و کوچک بودن حروف را فعال نمود در نتیجه عبارت ( ?!:[aeiou] ) با رشته های hello و HELLO تطابق خواهد داشت ولی با Zzzz. نه

سوالات مشابه

0 امتیاز
1 پاسخ 1.0هزار بازدید
0 امتیاز
1 پاسخ 335 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
0 پاسخ 224 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط mo4sa (0 امتیاز)
0 امتیاز
1 پاسخ 549 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط af6900 (45 امتیاز)
0 امتیاز
1 پاسخ 417 بازدید
0 امتیاز
1 پاسخ 405 بازدید
+1 امتیاز
1 پاسخ 348 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط hldv (760 امتیاز)
+1 امتیاز
1 پاسخ 438 بازدید
+2 امتیاز
1 پاسخ 2.3هزار بازدید
+1 امتیاز
1 پاسخ 312 بازدید
...