برای ایجاد یک عبارت منظم، باید از سینتکس خاصی استفاده کنید - یعنی کاراکترهای ویژه و قوانین ساخت. برای مثال، عبارت منظم ساده زیر با هر شماره تلفن 10 رقمی، با الگوی nnn-nnn-nnnn، مطابقت دارد:
\d{3}-\d{3}-\d{4}
جدول زیر برخی از رایجترین کاراکترهای ویژه برای استفاده در عبارات منظم را شرح میدهد. این کاراکترها به شرح زیر طبقهبندی میشوند:
| شخصیتها | توضیحات |
|---|---|
| لنگرها | |
| ^ | (caret) با شروع خط یا رشته متنی که عبارت منظم جستجو میکند، مطابقت دارد. برای مثال، یک قانون محتوا با یک خط موضوع مکان و عبارت منظم زیر: ^abc هر پیام ایمیلی را که موضوع آن با حروف abc شروع میشود، ثبت میکند. |
| دلار | (دلار) با انتهای خط یا رشته متنی که عبارت منظم جستجو میکند، مطابقت دارد. برای مثال، یک قانون محتوا با یک خط موضوع مکان و عبارت منظم زیر: ایکس وای زد هر پیام ایمیلی که موضوع آن به حروف xyz ختم میشود را ثبت میکند |
| متاکاراکترها | |
| . | (نقطه) با هر کاراکتر واحدی، به جز یک خط جدید، مطابقت دارد. |
| | | (لوله) نشان دهنده تناوب است - یعنی یک "یا". برای مثال: cat|dog با کلمه cat یا dog مطابقت دارد. |
| \ | نشان میدهد که کاراکتر بعدی یک کاراکتر واقعی است و نه یک کاراکتر خاص. برای مثال: \. با یک نقطهی تحتاللفظی مطابقت دارد، نه هر کاراکتری (کاراکتر نقطه) |
| کلاسهای شخصیت | |
| [...] | با هر کاراکتری از مجموعهای از کاراکترها مطابقت دارد. اولین و آخرین کاراکتر در یک مجموعه را با خط تیره از هم جدا کنید. برای مثال: [123] با رقم 1 ، 2 یا 3 مطابقت دارد [af] با هر حرفی از a تا f مطابقت دارد. نکته: عبارات منظم در سیاستهای انطباق محتوا به حروف کوچک و بزرگ حساس هستند. |
| [^...] | با هر کاراکتری که در مجموعه کاراکترها نباشد، مطابقت دارد. برای مثال: [^af] با هر کاراکتری که حرفی از a تا f نباشد، مطابقت دارد. نکته: عبارات منظم در سیاستهای انطباق محتوا به حروف کوچک و بزرگ حساس هستند. |
| [:alnum:] | با کاراکترهای الفبایی-عددی (حروف یا ارقام) مطابقت دارد: az ، AZ ، یا ۰-۹ نکته: هنگام استفاده از این کلاس کاراکتر در یک عبارت منظم، مثلاً: [[:alnum:]]، باید آن را با مجموعهای دیگر از براکتهای مربعی احاطه کنید. |
| [:آلفا:] | با کاراکترهای الفبایی (حروف) مطابقت دارد: az یا AZ Note: This character class must be surrounded with another set of square brackets when you use it in a regular expression, for example: [[:alpha:]]. |
| [:رقم:] | با ارقام مطابقت میدهد: ۰-۹ نکته: این کلاس کاراکتر باید هنگام استفاده در یک عبارت منظم، با مجموعهای دیگر از براکتهای مربعی احاطه شود، برای مثال: [[:digit:]]. |
| [:گراف:] | فقط با کاراکترهای قابل مشاهده مطابقت دارد - یعنی هر کاراکتری به جز فاصله، کاراکترهای کنترلی و غیره. نکته: هنگام استفاده از این کلاس کاراکتر در یک عبارت منظم، مثلاً: [[:graph:]]، باید آن را با مجموعهای دیگر از براکتهای مربعی احاطه کنید. |
| [:نقطه گذاری:] | کاراکترهای نقطه گذاری و نمادها را مطابقت میدهد: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } نکته: هنگام استفاده از این کلاس کاراکتر در یک عبارت منظم، مثلاً: [[:punct:]]، باید آن را با مجموعهای دیگر از براکتهای مربعی احاطه کنید. |
| [:چاپ:] | با کاراکترها و فاصلههای قابل مشاهده مطابقت دارد. نکته: این کلاس کاراکتر باید هنگام استفاده در یک عبارت منظم، با مجموعهای دیگر از براکتهای مربعی احاطه شود، برای مثال: [[:print:]]. |
| [:فاصله:] | با تمام کاراکترهای فاصله، شامل فاصلهها، تبها و پرشهای خط، مطابقت دارد. نکته: این کلاس کاراکتر باید هنگام استفاده در یک عبارت منظم، با مجموعهای دیگر از براکتهای مربعی احاطه شود، برای مثال: [[:space:]]. |
| [:کلمه:] | با هر کاراکتر کلمهای - یعنی هر حرف، رقم یا زیرخط - مطابقت دارد: az ، AZ ، 0-9 ، یا _ نکته: هنگام استفاده از این کلاس کاراکتر در یک عبارت منظم، مثلاً: [[:word:]]، باید آن را با مجموعهای دیگر از براکتهای مربعی احاطه کنید. |
| کلاسهای کاراکترهای مختصرنویسی | |
| \w | با هر کاراکتر کلمهای - یعنی هر حرف، رقم یا زیرخط - مطابقت دارد: az ، AZ ، 0-9 ، یا _ معادل [:word:] |
| \W | با هر کاراکتر غیرکلمه - یعنی هر کاراکتری که حرف، رقم یا زیرخط نباشد - مطابقت دارد. معادل [^[:word:]] |
| \s | با هر کاراکتر فاصلهی خالی مطابقت دارد. برای مثال، از این کاراکتر برای تعیین فاصله بین کلمات در یک عبارت استفاده کنید: stocktips با عبارت stock tips مطابقت دارد. معادل [:فاصله:] |
| \س | با هر کاراکتری که فضای خالی نباشد، مطابقت دارد. معادل [^[:space:]] |
| \d | با هر رقمی از ۰ تا ۹ مطابقت دارد. معادل با [:digit:] |
| \دی | با هر کاراکتری که رقمی بین ۰ تا ۹ نباشد، مطابقت دارد. معادل با [^[:digit:]] |
| گروه | |
| (...) | بخشهایی از یک عبارت را گروهبندی میکند. از گروهبندی برای اعمال یک کمیتسنج به یک گروه یا تطبیق یک کلاس کاراکتر قبل یا بعد از یک گروه استفاده کنید. |
| کمیتسنجها | |
| {ن} | عبارت قبلی را دقیقاً n بار مطابقت دهید. برای مثال: [ac]{2} فقط در صورتی با هر حرفی از a تا c مطابقت دارد که دو حرف پشت سر هم باشند. بنابراین، این عبارت با ab و bc مطابقت دارد اما با abc یا aabbc مطابقت ندارد. |
| {n،m} | عبارت قبلی را حداقل n بار و حداکثر m بار مطابقت دهید. برای مثال: [ac]{2,4} فقط در صورتی با هر حرفی از a تا c مطابقت دارد که حروف حداقل ۲ بار و حداکثر ۴ بار پشت سر هم ظاهر شوند. بنابراین، این عبارت با ab و abc مطابقت دارد اما با aabbc مطابقت ندارد. |
| ? | نشان میدهد که کاراکتر یا عبارت قبلی میتواند ۰ یا ۱ بار مطابقت داشته باشد. معادل محدوده {۰،۱}. به عنوان مثال، عبارت منظم زیر: رنگ؟ با هر دو رنگ یا colour مطابقت دارد، زیرا علامت ? باعث میشود حرف u اختیاری باشد. |