عبارات منظم و بررسی Negation و Assertion

بررسی Negation و Assertion

به قسمت سوم یا همان قسمت آخر از آموزش های Regular Expressions رسیدیم.در این قسمت به بررسی Negation و Assertion میپردازیم  ابه همه دوستان توصیه می کنم قبل از خواندن این مقاله دو قسمت قبلی را مطالعه بفرمایید:

بررسی Negation و Assertion

تمرکز ما در این مقاله بر این است که چگونه به موتور عبارات منظم بگوییم که یک کاراکتر خاص یا الگویی از کاراکترها را نادیده بگیرد.

همچنین یاد می گیریم که چگونه به موتور بگوییم الگوی خاصی از متن را که در سمت راست یا چپ بقیه رشته وجود دارد، جستجو کند.

شکلی از negation در کلاس های کاراکتر پشتیبانی می شود.

کد زیر، مثالی از یک عبارت منظم می باشد:

var myExpression = <strong>new</strong>Regex(@"[^aeiou]");

این خط کد، به موتور می گوید تمامی کاراکترها به جز حروف صدادار را پیدا کند.

شکل دیگری از negation را می توان زمانی که از کلاس های کاراکتر خاصی استفاده می کنیم، مشاهده کرد.

در زیر لیستی از نحوه های نگارشی را که می توان روی یک شیء Regex اعمال کرد، مشاهده می کنید:

\S کاراکترهای فاصله را نادیده می گیرد.

\D کاراکترهای عددی را نادیده می گیرد.

\W کاراکترهای “word” (به عبارت دیگر، حروف a تا z، A تا Z – کاراکتر و اعداد) را نادیده می گیرد.

مفهوم دیگری که در negation بسیار مطرح می شود، assertion نامیده می شود. Assertion برای جستجوی الگویی که در سمت راست یا چپ یک رشته یافت می شود، استفاده می گردد.

به مثال زیر توجه کنید:

	var myExpression = <strong>new</strong>Regex(@"(q(?!p))");

همان طور که مشاهده می کنید، عبارت q(?!p) در یک گروه قرار گرفته است.

عبارت داخل گروه به این معنی است که موتور باید حرف q را پیدا کند به شرط اینکه کنار حرف p نباشد.

هر زمان که بخواهیم بگوییم “x نباید قبل از y” باشد از ?! استفاده می کنیم، که باید در پرانتز قرار بگیرد و دلیل جفت پرانتز دوم در مثال بالا همین است.

حالا چگونه به موتور عبارات منظم بگوییم که به دنبال حرف q ای باشد که حتما کنار حرف p آمده باشد؟

تنها تغییری که باید در مثال بالا بدهیم، جایگزینی کاراکتر !  با =.

مثال بالا به صورت زیر تغییر می کند:

	var myExpression = <strong>new</strong>Regex(@"(q(?=p))");

امیدوارم این سری کوتاه آموزشی جهت آشنایی با عبارات منظم برای شما مفید بوده باشه، منتظر کامنت های شما هستیم.

  • پسورد: www.mspsoft.com
فاطمه زکایی

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

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.