حالت های (Mode) مختلف به کار بردن یک عبارت قاعده مند (Regular Expressions) (حالت استاندارد (Standard) - حالت سراسری (Global) - حالت غیرحساس به بزرگی و کوچکی حروف (Case-insensitive) - حالت چندخطی (Multiline) - حالت پذیرش همه کاراکترها توسط علامت نقطه (Dot) (انگلیسی : Dot-matches-all)) (مثلا عبارت قاعده مند re با حالت های /re/ و re/g/ و re/i/ و re/m/ و re/s/)، در عبارات قاعده مند (Regular Expressions)
فرض کنید که بر اساس قواعد مربوط به عبارات قاعده مند (Regular Expressions)، برای یافتن عبارت های مورد نظرمان در یک متن، به عبارت قاعده مند (Regular Expressions) زیر رسیده ایم :
اکنون این عبارت قاعده مند (Regular Expressions) را می توانیم با حالت های (Mode) مختلف به کار ببریم :
که اولین آنها، حالت استاندارد (Standard) می باشد.
همان طور که مشاهده می کنید، در تمامی آنها، دو علامت / در قبل و بعد از عبارت قاعده مند (Regular Expressions) ذکر شده است و سپس در آخر، یا حرفی ذکر نشده (که مربوط به حالت استاندارد (Standard) است) و یا اینکه یک حرف ذکر شده که حالتی (Mode) غیر از حالت استاندارد (Standard) را بیان می کند).
ما در آموزش های کلیدستان، عبارت قاعده مند (Regular Expressions) را تنها به صورت عبارت درون دو علامت / در نظر می گیریم و آن را شرح می دهیم و برای شلوغ نشدن کدها، دو علامت / و حرف مربوط به حالت (Mode) را نمی نویسیم. بنابراین خود شما، آنها را به صورت کلی در ذهن داشته باشید.
در وب سایت هایی نیز که در کلید شماره 3059 ذکر کردیم، معمولا نیازی به نوشتن دو علامت / و حرف مربوط به حالت (Mode) نمی باشد (این یک عادت رایج می باشد).
در ادامه، تفاوت بین این حالت ها (Mode) را شرح می دهیم.
حالت استاندارد (Standard) :
در حالت استاندارد (Standard)، ((تنها اولین)) مورد یافت شده در متن مورد جستجو برای آن عبارت قاعده مند (Regular Expressions)، برگردانده می شود :
حالت سراسری (Global) :
در حالت سراسری (Global)، ((همه)) موارد یافت شده در متن مورد جستجو برای آن عبارت قاعده مند (Regular Expressions)، برگردانده می شوند :
حالت غیرحساس به بزرگی و کوچکی حروف (Case-insensitive) :
به شکل پیش فرض، عبارت قاعده مند (Regular Expressions) به صورت حساس به بزرگی و کوچکی حروف خواهد بود، اما اگر بخواهیم غیرحساس به بزرگی و کوچکی حروف (Case-insensitive) باشد، باید حالت غیرحساس به بزرگی و کوچکی حروف (Case-insensitive) را برای عبارت قاعده مند (Regular Expressions) تعیین نماییم :
حالت چندخطی (Multiline) :
در کلید شماره 3064 ، چگونگی چک کردن ابتدای خط (line) یا رشته (String)، با علامت ^ و همچنین در کلید شماره 3065 ، چگونگی چک کردن انتهای خط (line) یا رشته (String)، با علامت $ را شرح داده ایم، اما در هنگام استفاده از علامت های ^ و $ ، به صورت پیش فرض، ابتدا یا انتهای کل رشته (String) را چک می کنند، اما اگر بخواهیم که علاوه بر ابتدا یا انتهای کل رشته (String)، ابتدا یا انتهای خط ها (line) را هم چک کنند، باید حالت چندخطی (Multiline) را به کار ببریم :
حالت پذیرش همه کاراکترها توسط علامت نقطه (Dot) (انگلیسی : Dot-matches-all) :
در کلید شماره 3062 ، در مورد کاربرد علامت نقطه (Dot) در عبارت قاعده مند (Regular Expressions) صحبت نموده ایم و بیان کرده ایم که علامت نقطه (Dot)، برای اشاره به یک کاراکتر، با همه کاراکترها (قابل انتخاب بودن همه کاراکترها برای آن، به جز کاراکتر خط جدید (New Line))، به کار می رود.
بنابراین به صورت پیش فرض، علامت نقطه (Dot)، کاراکتر خط جدید (New Line) را نمی پذیرد، اما اگر بخواهیم که کاراکتر خط جدید (New Line) را نیز قبول کند، باید حالت پذیرش همه کاراکترها توسط علامت نقطه (Dot) (انگلیسی : Dot-matches-all) را به کار ببریم :