X
تبلیغات
نماشا
رایتل
پشم سنگ عایق الاستومری
شنبه 14 آبان‌ماه سال 1390
توسط: آلفا پک

ارجاع به عقب( Backreference ) در عبارت‌های منظم

دانستن عبارت‌های منظم( Regular Expressions ) در برنامه‌نویسی روند توسعه‌ی نرم‌افزار را سرعت چشم‌گیری می‌بخشد.

یکی از نکته‌های کمتر شناخته‌شده در این عبارت‌ها، ارجاع به عقب است که می‌تواند در شناسایی رشته‌های مورد نظر کمک بزرگی به حساب آید.

بهترین مثال قابل اشاره، تگ‌های موجود در HTML است. فرض کنید می‌خواهیم عبارت‌هایی که با AMIB آغاز می‌شوند و تگ محصور کننده‌ی آن را جستجو کنیم:

<span>AMIB 1</span>
<div>AMIB 2</div>
<h1>AMIB 3</h1>

برای انجام این کار، می‌توان از ارجاع به عقب بهره گرفت:

<([a-z][a-z0-9]+)>AMIB.+?</\1>

ارجاع به عقب در حقیقت استفاده‌ی مجدد از بخش‌های یافته‌شده‌ی قبلی است. در مثال بالا، عبارت ’1\’ یک ارجاع به عقب است. این ارجاع معادل متغیر یافته شده در پرانتز ابتدایی است.
هر مقداری که در پرانتز ابتدایی یافته شود، در این ارجاع نیز کپی خواهد شد. برای دسترسی به متغیرهای دوم تا نهم کافی‌است از عبارت‌های ’2\’ تا ’9\’ استفاده کنید.

به علامت سوال «?» پس از +. توجه کنید. به کار بردن این علامت سوال سبب می‌شود تا کوتاه‌ترین عبارت ممکن جستجو و در نتیجه، تگ انتهایی به درستی انتخاب شود.


منبع