.
هر کاراکتری (به جز خط جدید؛ با فلگ /s، خط جدید نیز)
\d
هر رقم (0-9)
\D
هر چیزی به جز رقم
\w
کاراکتر کلمه (a-z, A-Z, 0-9, _)
\W
کاراکتر غیر کلمه
\s
فضای خالی (space، tab، خط جدید)
\S
غیر فضای خالی
\b
مرز کلمه
^ $
ابتدا / انتهای رشته (یا خط، با فلگ /m)
*
صفر یا بیشتر از عنصر قبلی
+
یک یا بیشتر از عنصر قبلی
?
صفر یا یک از عنصر قبلی (اختیاری)
{n,m}
بین n و m از عنصر قبلی
(...)
capture group — در $1، $2، … ذخیره میشود
(?:...)
گروه بدون capture — مفید برای جایگزینی بدون ذخیرهسازی
(?<n>...)
capture group نامدار — به صورت $<n> ارجاع داده میشود
[abc]
کلاس کاراکتر — هر یک از a، b یا c
[^abc]
کلاس کاراکتر منفی — هر کاراکتری به جز a، b، c
a|b
جایگزینی — تطبیق با a یا b
(?=...)
lookahead مثبت — در ادامه دارای
(?!...)
lookahead منفی — در ادامه نداشتن
(?<=...)
lookbehind مثبت — در ابتدا دارای
(?<!...)
lookbehind منفی — در ابتدا نداشتن
$1 $<n>
backreference در رشته جایگزینی — شمارهدار یا نامدار