نحو عبارات منظم

برای ایجاد یک عبارت منظم، باید از سینتکس خاصی استفاده کنید - یعنی کاراکترهای ویژه و قوانین ساخت. برای مثال، عبارت منظم ساده زیر با هر شماره تلفن 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 اختیاری باشد.