منبع اصلی نوشتار زیر در این لینک قرار دارد

با Regular Expression دوست باشیم

برنامه‌نویس‌ها اکثرا میانه خوبی با Regular Expression ندارند ولی این ابزار یکی از بهترین و سریعترین ابزارهای موجود برای برنامه‌نویس‌هاست. تقریبا هر موجودی که می‌توان در آن تایپ کرد، از امکان جستجو و جایگزینی (Replace) بر اساس RegEx پشتیبانی می‌کند.

برای مثال در یک زمانی برای همه خصیصه‌ها در یک پروژه دات نتی XML Comment گذاشتم. اما بعدا متوجه شدم که این کامنت‌ها کمکی به خواننده نمی‌کند چون توضیح خاصی داخلش نیست. اگر می‌خواستم از این به بعد کامنت ننویسم یکپارچکی از بین می‌رفت که برایم خیلی مهم است. اگر می‌خواستم همه کامنت‌ها را پاک کنم، وقت زیادی می‌گرفت!

راه حل ساده، Regular Expression بود. با جایگزینی RegularExpression زیر با یک رشته خالی همه کامنت‌ها پاک شد:


s+///.*n

این عبارت هر خطی از کد که؛

  • با تعداد حداقل یک فاصله شروع شده (s+) و
  • با سه کارکتر «/» ادامه داده شده (///) و
  • با تعدادی کاراکتر که مهم نیست چه باشند (.*)
  • به انتهای خط رسیده است (n)

را پیدا می‌کند. من این عبارت را با یک رشته خالی جایگزین کردم و نتیجه این شد که دیگر هیچ XML Comment ی در فایل‌ها وجود نداشتند.

از آن به بعد سعی کردم بیشتر با Regular Expression دوست باشم و حالا در لینوکس این دوستی بیشتر شده و استفاده‌ها و صرفه جویی‌های واقعا مفیدی دارد.

نباید فراموش کرد که Regular Expression هم یک زبان برنامه‌نویسی است (هر چند برای یک هدف خاص طراحی شده).