عبارت باقاعده regex
جستجو و جایگزینی با الگو: پیدا کردن عدد، ایمیل یا تاریخ در متن و جدا کردن بخشهایش.
واردسازی عبارت باقاعده
عبارت باقاعده زبانی کوچک برای توصیف الگوی متن است؛ [0-9]+ یعنی «یک یا چند رقم». با آن میتوانید بپرسید متنی با الگو جور است یا نه، همهی جاهای جور را پیدا کنید، بخشهایی از آن را بیرون بکشید یا جایگزین کنید.
هر روال دو نسخه دارد. نسخهای که عبارت باقاعده میگیرد با الگوی از پیش کامپایلشده کار میکند و برای استفادهی تکراری سریعتر است. نسخهای که نامش با «رشته» تمام میشود، الگو را به شکل متن میگیرد و هر بار کامپایلش میکند؛ برای کارهای یکباره راحتتر است.
پرانتز در الگو یک «گروه» میسازد و (?P<نام>...) گروهی نامدار. گروه صفر کل بخش جورشده است. در جایگزینی، $1 و $2 جای گروهها را میگیرند.
گونهها
نتیجه تطبیق MatchResult
ساختار نتیجه تطبیق| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| ok | ok | منطقی = نادرست | اگر جوری پیدا شده باشد، درست است. |
| start | start | صحیح = -1 | جای شروع بخش جورشده، بر حسب بایت. |
| stop | stop | صحیح = -1 | جای پایان بخش جورشده، بر حسب بایت (خود این جایگاه جزو آن نیست). |
| count | count | صحیح = 0 | تعداد گروهها، بهجز گروه صفر. |
| text | text | رشته = "" | کل متنی که در آن جستجو شده؛ نه فقط بخش جورشده. بخش جورشده را با گروه(ت، ۰) بگیرید. |
| pattern | pattern | رشته = "" | الگویی که جستجو با آن انجام شده. |
| gs | gs | صحیح[] | جای شروع هر گروه. |
| ge | ge | صحیح[] | جای پایان هر گروه. |
واردسازی عبارت باقاعده
روال ریشه:
ع := عبارت باقاعده.کامپایل("(?P<year>[0-9]{4})-(?P<month>[0-9]{2})")
ت := عبارت باقاعده.یافتن تطبیق(ع، "تاریخ: 2025-09")
سرچاپ ت.ok، ت.start، ت.stop، ت.text
سرچاپ عبارت باقاعده.تعداد گروه(ت)، عبارت باقاعده.گروه هست(ت، ۱)
سرچاپ عبارت باقاعده.گروه(ت، ۰)، عبارت باقاعده.گروه(ت، ۱)، عبارت باقاعده.گروه(ت، ۲)
سرچاپ عبارت باقاعده.شروع گروه(ت، ۲)، عبارت باقاعده.پایان گروه(ت، ۲)
سرچاپ عبارت باقاعده.شماره گروه(ت، "month")، عبارت باقاعده.گروه با نام(ت، "year")
ت۲ := عبارت باقاعده.یافتن تطبیق از(ع، "2024-01 و 2025-02"، ۵)
سرچاپ عبارت باقاعده.گروه(ت۲، ۰)
سرچاپ عبارت باقاعده.گروه(عبارت باقاعده.یافتن تطبیق رشته("b+"، "aabbbc")، ۰)
سرچاپ عبارت باقاعده.یافتن زیرتطبیق(ع، "2025-09")
سرچاپ عبارت باقاعده.یافتن زیرتطبیق رشته("(a)(b)"، "xab")
پایانعبارت باقاعده Regex
ساختار عبارت باقاعدهکامپایل بسازید و بارها به کار ببرید.| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| pattern | pattern | رشته = "" | متن الگویی که کامپایل شده. |
واردسازی عبارت باقاعده
روال ریشه:
ع := عبارت باقاعده.کامپایل("[0-9]+")
سرچاپ ع.pattern، عبارت باقاعده.معتبر است("[0-9]+")، عبارت باقاعده.معتبر است("[0-9")
سرچاپ عبارت باقاعده.تطبیق(ع، "abc123")، عبارت باقاعده.یافتن(ع، "abc123")
سرچاپ عبارت باقاعده.جایگزینی(ع، "a1 b22 c333"، "#")
سرچاپ عبارت باقاعده.جایگزینی همه(ع، "a1 b22 c333"، "#")
سرچاپ عبارت باقاعده.تطبیق رشته("^[a-z]+$"، "salam")، عبارت باقاعده.یافتن رشته("o"، "salam donya")
سرچاپ عبارت باقاعده.جایگزینی رشته("a"، "banana"، "o")، عبارت باقاعده.جایگزینی همه رشته("a"، "banana"، "o")
پایانروالها
یافتن تطبیق FindMatch
روال یافتن تطبیق(re: عبارت باقاعده، text: رشته): نتیجه تطبیقنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
یافتن تطبیق رشته FindMatchStr
روال یافتن تطبیق رشته(pattern: رشته، text: رشته): نتیجه تطبیقیافتن تطبیق، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
یافتن تطبیق از FindMatchFrom
روال یافتن تطبیق از(re: عبارت باقاعده، text: رشته، from: صحیح): نتیجه تطبیقیافتن تطبیق، ولی جستجو را از بایت from شروع میکند؛ برای پیدا کردن مورد بعدی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
تعداد گروه GroupCount
روال تعداد گروه(m: نتیجه تطبیق): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
گروه هست GroupOk
روال گروه هست(m: نتیجه تطبیق، i: صحیح): منطقیi در این جور شرکت کرده باشد، درست برمیگرداند. گروههای اختیاری ممکن است خالی بمانند.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
گروه Group
روال گروه(m: نتیجه تطبیق، i: صحیح): رشتهi را برمیگرداند؛ گروه صفر کل بخش جورشده است.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
شروع گروه GroupStart
روال شروع گروه(m: نتیجه تطبیق، i: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
پایان گروه GroupEnd
روال پایان گروه(m: نتیجه تطبیق، i: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
شماره گروه GroupIndex
روال شماره گروه(m: نتیجه تطبیق، name: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
گروه با نام GroupByName
روال گروه با نام(m: نتیجه تطبیق، name: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
یافتن زیرتطبیق FindSubmatch
روال یافتن زیرتطبیق(re: عبارت باقاعده، text: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
یافتن زیرتطبیق رشته FindSubmatchStr
روال یافتن زیرتطبیق رشته(pattern: رشته، text: رشته): وکتور<رشته>یافتن زیرتطبیق، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Group.salam
یافتن همه تطبیق ها FindAllMatches
روال یافتن همه تطبیق ها(re: عبارت باقاعده، text: رشته، limit: صحیح): وکتور<نتیجه تطبیق>limit منفی یعنی بدون محدودیت.واردسازی عبارت باقاعده
روال ریشه:
ع := عبارت باقاعده.کامپایل("[0-9]+")
متن := "سال 1403، ماه 7، روز 12"
سرچاپ عبارت باقاعده.یافتن همه(ع، متن)
سرچاپ عبارت باقاعده.یافتن چند(ع، متن، ۲)
سرچاپ عبارت باقاعده.یافتن همه رشته("[a-z]+"، "one two three")
سرچاپ عبارت باقاعده.تفکیک کردن(عبارت باقاعده.کامپایل(" *, *")، "a , b,c , d")
سرچاپ عبارت باقاعده.تفکیک کردن چند(عبارت باقاعده.کامپایل(",")، "a,b,c,d"، ۲)
سرچاپ عبارت باقاعده.تفکیک کردن رشته("-+"، "2025--09---29")
همه := عبارت باقاعده.یافتن همه تطبیق ها(ع، متن، -۱)
هر ت در همه:
سرچاپ عبارت باقاعده.گروه(ت، ۰)، ت.start، ت.stop
پایان
پایانیافتن چند FindAllN
روال یافتن چند(re: عبارت باقاعده، text: رشته، limit: صحیح): وکتور<رشته>limit مورد جور را برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
یافتن همه FindAll
روال یافتن همه(re: عبارت باقاعده، text: رشته): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
یافتن همه رشته FindAllStr
روال یافتن همه رشته(pattern: رشته، text: رشته): وکتور<رشته>یافتن همه، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
تفکیک کردن چند SplitN
روال تفکیک کردن چند(re: عبارت باقاعده، text: رشته، limit: صحیح): وکتور<رشته>limit تکه؛ تکهی آخر بقیهی متن است.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
تفکیک کردن Split
روال تفکیک کردن(re: عبارت باقاعده، text: رشته): وکتور<رشته>رشته.تفکیک کردن انعطافپذیرتر است.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
تفکیک کردن رشته SplitStr
روال تفکیک کردن رشته(pattern: رشته، text: رشته): وکتور<رشته>تفکیک کردن، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-FindAll.salam
بسط Expand
روال بسط(m: نتیجه تطبیق، template: رشته): رشته$1، $2 و… جای گروهها را میگیرند.واردسازی عبارت باقاعده
روال ریشه:
ع := عبارت باقاعده.کامپایل("([a-z]+)@([a-z]+)")
متن := "ali@home, sara@work"
ت := عبارت باقاعده.یافتن تطبیق(ع، متن)
سرچاپ عبارت باقاعده.بسط(ت، "$2 <- $1")
سرچاپ عبارت باقاعده.جایگزینی با بسط(ع، متن، "$2:$1")
سرچاپ عبارت باقاعده.جایگزینی همه با بسط(ع، متن، "$2:$1")
سرچاپ عبارت باقاعده.جایگزینی با بسط رشته("(\\w+) (\\w+)"، "hello world"، "$2 $1")
سرچاپ عبارت باقاعده.جایگزینی همه با بسط رشته("(a)(b)"، "abab"، "$2$1")
پایانجایگزینی با بسط ReplaceExpand
روال جایگزینی با بسط(re: عبارت باقاعده، text: رشته، template: رشته): رشته$1 و… استفاده کنید.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Expand.salam
جایگزینی همه با بسط ReplaceAllExpand
روال جایگزینی همه با بسط(re: عبارت باقاعده، text: رشته، template: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Expand.salam
جایگزینی با بسط رشته ReplaceExpandStr
روال جایگزینی با بسط رشته(pattern: رشته، text: رشته، template: رشته): رشتهجایگزینی با بسط، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Expand.salam
جایگزینی همه با بسط رشته ReplaceAllExpandStr
روال جایگزینی همه با بسط رشته(pattern: رشته، text: رشته، template: رشته): رشتهجایگزینی همه با بسط، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Expand.salam
کامپایل Compile
روال کامپایل(pattern: رشته): عبارت باقاعدهمعتبر است بررسیاش کنید.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
معتبر است IsValid
روال معتبر است(pattern: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
تطبیق Match
روال تطبیق(re: عبارت باقاعده، text: رشته): منطقی^ و $ محصور کنید.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
یافتن Find
روال یافتن(re: عبارت باقاعده، text: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
جایگزینی Replace
روال جایگزینی(re: عبارت باقاعده، text: رشته، replacement: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
جایگزینی همه ReplaceAll
روال جایگزینی همه(re: عبارت باقاعده، text: رشته، replacement: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
تطبیق رشته MatchStr
روال تطبیق رشته(pattern: رشته، text: رشته): منطقیتطبیق، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
یافتن رشته FindStr
روال یافتن رشته(pattern: رشته، text: رشته): صحیحیافتن، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
جایگزینی رشته ReplaceStr
روال جایگزینی رشته(pattern: رشته، text: رشته، replacement: رشته): رشتهجایگزینی، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam
جایگزینی همه رشته ReplaceAllStr
روال جایگزینی همه رشته(pattern: رشته، text: رشته، replacement: رشته): رشتهجایگزینی همه، با الگوی متنی.نمونهی این مورد همراه با موارد بالاتر آمده است: regex-Compile.salam