سرفصل‌های آموزشی
آموزش رگیولار اکسپرشن
آشنایی با مفهوم Flag در RegEx

آشنایی با مفهوم Flag در RegEx

در رِجِکس یک سری حروف هستند که تحت عنوان Flag شناخته می‌شوند که نقش‌های خاصی را بازی می‌کنند. به طور مثال داریم:

var string = "SokanAcademy";
var regex = /sokanacademy/i;
string.match(regex);

همان‌طور که می‌بینیم،‌ استرینگ مذکور به صورت اصطلاحاً PascalCase نوشته شده است اما با در نظر گرفتن فِلگ i که برگرفته از اصطلاح Case Insensitive می‌باشد، دستور داده‌ایم که بزرگی و کوچکی حروف نادیده گرفته شود.

    به خاطر داشته باشید
در صنعت توسعه‌ٔ نرم‌افزار،‌ اصطلاح PascalCase به روشی از نام‌گذاری اطلاق می‌گردد که به موجب آن حرف اول کلیهٔ‌ کلماتی که در یک نام استفاده شده‌اند به صورت بزرگ نوشته می‌شود. به طور مثال، حروف S و A در استرینگ SokanAcademy به صورت بزرگ نوشته‌ شده‌اند. نقطهٔ مقابل این روش نام‌گذاری هم camelCase قرار دارد که در این رویکرد حرف اول اولین کلمه به صورت کوچک نوشته شده سپس حرف اول سایر کلمات با حروف بزرگ نوشته خواهند شد. به طور مثال، sokanAcademy این بار بر اساس روش دوم نوشته شده است چرا که حرف اول دومین کلمه به صورت بزرگ نوشته شده است (لازم به یادآوری است که وجه تسمیهٔ این روش نام‌گذاری بدان جهت است که استرینگ مذکور همچون کوهان شتر خواهد بود.)

فِلگ دیگری در رِجِکس داریم تحت عنوان g که برگرفته از کلمهٔ Global است و این امکان را در اختیارمان می‌گذارد تا اگر الگویی خاص بیش از یک بار موجود بود، آن‌‌ها را نمایش دهد به طوری که مثلاً داریم:

var string = "SokanAcademy sokanacademy";
var regex = /sokanacademy/ig;
string.match(regex);

همان‌طور که ملاحظه می‌شود، در استرینگ فوق دو بار یک کلمه را تکرار کرده‌ایم با این توضیح که مورد اول به صورت PascalCase و مورد دوم به صورت معمولی نوشته شده است اما علاوه بر فِلگ i از فِلگ دیگری تحت عنوان g نیز استفاده کرده‌ایم بدان معنا که اگر بیش از یک بار کلمه‌ای مَچ شد، تمامی آن‌ها را ریترن کند (لازم به یادآوری است که در زبان برنامه‌نویسی پی‌اچ‌پی از فِلگ g نمی‌توان استفاده نمود و در عوض می‌باید از فانکشنی تحت عنوان ()preg_match_all استفاده کرد که این وظیفه را دارا است تا کلیهٔ‌ کلماتی که مَچ می‌شوند را ریترن کند.)

online-support-icon