این دستور perlrequick است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
perlrequick - عبارات منظم پرل شروع سریع
شرح
این صفحه اصول اساسی درک، ایجاد و استفاده از عبارات منظم را پوشش می دهد
('regexes') در پرل.
La راهنما
ساده کلمه مطابق
ساده ترین regex به سادگی یک کلمه یا به طور کلی تر، رشته ای از کاراکترها است. یک رژکس
متشکل از یک کلمه با هر رشته ای که حاوی آن کلمه است مطابقت دارد:
"سلام دنیا" =~ /جهان/; # مسابقات
در این عبارت، "World" یک regex است و "//" احاطه کننده "/World/" به پرل می گوید که
یک رشته را برای یک مسابقه جستجو کنید. عملگر "=~" رشته را با تطابق regex مرتبط می کند
و اگر regex مطابقت داشت یک مقدار true یا اگر regex مطابقت نداشت مقدار false تولید می کند. که در
مورد ما، "World" با کلمه دوم "Hello World" مطابقت دارد، بنابراین عبارت درست است.
این ایده دارای چندین تنوع است.
عباراتی مانند این در شرایط شرطی مفید هستند:
چاپ "It مطابق\n" اگر "Hello World" =~ /World/;
حس تطابق را می توان با استفاده از عملگر "!~" معکوس کرد:
چاپ "It does not match\n" اگر "Hello World"!~ /World/;
رشته واقعی در regex را می توان با یک متغیر جایگزین کرد:
$greeting = "جهان";
چاپ "It matchs\n" اگر "Hello World" =~ /$greeting/;
اگر با $_ مطابقت دارید، قسمت "$_ =~" را می توان حذف کرد:
$_ = "سلام دنیا";
چاپ "It matches\n" اگر /World/;
در نهایت، جداکنندههای پیشفرض «//» برای یک مسابقه را میتوان به جداکنندههای دلخواه تغییر داد
قرار دادن "m" در جلو:
"سلام دنیا" =~ m!World!; # منطبق، با «!» مشخص شده است.
"Hello World" =~ m{World}; # منطبق، به تطابق "{}" توجه کنید
"/usr/bin/perl"=~ m"/perl"؛ # مطابق بعد از '/ usr / bin',
# '/' تبدیل به یک کاراکتر معمولی می شود
Regexe ها باید با بخشی از رشته مطابقت داشته باشند کاملا برای اینکه گفته درست باشد:
"سلام دنیا" =~ /جهان/; # مطابقت ندارد، به حروف کوچک و بزرگ حساس است
"سلام جهان" =~ /o W/; # مطابق، " " یک کاراکتر معمولی است
"سلام دنیا" =~ /جهان /; # مطابقت ندارد، نه " " در پایان
پرل همیشه در اولین نقطه ممکن در رشته مطابقت دارد:
"سلام دنیا" =~ /o/; # منطبق با "o" در "سلام"
"آن کلاه قرمز است" =~ /کلاه/; # منطبق با "کلاه" در "آن"
همه کاراکترها را نمیتوان «همانطور که هست» در یک مسابقه استفاده کرد. برخی از شخصیت ها، به نام
متاکاراکترها، برای استفاده در نماد regex رزرو شده اند. متا شخصیت ها هستند
{}[]()^$.|*+?\
یک متاکاراکتر را میتوان با گذاشتن یک بک اسلش قبل از آن مطابقت داد:
"2+2=4" =~ /2+2/; # مطابقت ندارد، + یک متاکاراکتر است
"2+2=4" =~ /2\+2/; # مطابقت دارد، \+ مانند یک + معمولی رفتار می شود
'C:\WIN32' =~ /C:\\WIN/; # مسابقات
"/usr/bin/perl" =~ /\/ usr\/ صندوقچه\/perl/; # مسابقات
در آخرین regex، اسلش جلوی '/' نیز معکوس است، زیرا به آن عادت دارد
Regex را محدود کنید
کاراکترهای ASCII غیر قابل چاپ با نشان داده می شوند فرار توالی. مثالهای متداول هستند
"\t" برای یک برگه، "\n" برای یک خط جدید و "\r" برای بازگشت کالسکه. بایت های دلخواه هستند
نشان داده شده توسط توالی های فرار هشتگانه، به عنوان مثال، "\033"، یا دنباله های فرار هگزا دسیمال،
به عنوان مثال، "\x1B":
"1000\t2000" =~ m(0\t2) # منطبق
"cat" =~ /\143\x61\x74/ # منطبق در ASCII، اما
# روشی عجیب برای املای گربه
Regexe ها بیشتر به عنوان رشته های دو نقل قول در نظر گرفته می شوند، بنابراین جایگزینی متغیر کار می کند:
$foo = 'خانه';
'cathouse' =~ /cat$foo/; # مسابقات
'گربه خانه' =~ /${foo}گربه/; # مسابقات
با همه regexهای بالا، اگر regex در جایی از رشته مطابقت داشت، اینطور بود
یک مسابقه در نظر گرفته شده است. برای مشخص کردن جایی که باید مطابقت داشته باشد، ما از آن استفاده می کنیم لنگر
متاکاراکترهای "^" و "$". لنگر «^» به معنای کبریت در ابتدای رشته و
لنگر "$" به معنای مطابقت در انتهای رشته یا قبل از یک خط جدید در انتهای رشته است
رشته چند نمونه:
"خانه دار" =~ /نگهبان/; # مسابقات
"خانه دار" =~ /^نگهبان/; # مطابقت ندارد
"خانه دار" =~ /نگهبان$/; # مسابقات
"housekeeper\n" =~ /keeper$/; # مسابقات
"خانه دار" =~ /^خانه دار$/; # مسابقات
با استفاده از شخصیت کلاس ها
A شخصیت کلاس اجازه می دهد تا مجموعه ای از شخصیت های ممکن، به جای تنها یک
شخصیت، برای مطابقت در یک نقطه خاص در یک regex. کلاس های کاراکتر با نشان داده می شوند
براکت های "[...]"، با مجموعه ای از کاراکترها که احتمالاً در داخل آنها مطابقت دارند. در اینجا برخی از
مثال ها:
/گربه/; # منطبق با "گربه"
/[bcr]at/; # منطبق با «خفاش»، «گربه» یا «موش صحرایی»
"abc" =~ /[cab]/; # منطبق با "a"
در آخرین بیانیه، حتی اگر "c" اولین کاراکتر در کلاس است، اولین کاراکتر است
نقطه ای که در آن regex می تواند مطابقت داشته باشد 'a' است.
/[yY][eE][sS]/; # "بله" را به روشی غیر حساس به حروف بزرگ و کوچک مطابقت دهید
# 'بله'، 'بله'، 'بله'، و غیره.
/yes/i; # همچنین به روشی که به حروف بزرگ و کوچک حساس نیست، «بله» را مطابقت دهید
مثال آخر تطبیق با "i" را نشان می دهد تغییر، که باعث می شود مورد مسابقه
غیر حساس
کلاس های کاراکتر نیز دارای شخصیت های معمولی و خاص هستند اما مجموعه های معمولی و
کاراکترهای ویژه داخل یک کلاس کاراکتر با شخصیت های خارج از یک کاراکتر متفاوت هستند
کلاس کاراکترهای ویژه یک کلاس کاراکتر "-]\^$" هستند و با استفاده از یک تطبیق داده می شوند
در رفتن:
/[\]c]def/; # منطبق با "]def" یا "cdef"
$x = 'bcr';
/[$x]at/; # منطبق با "خفاش، "گربه" یا "رت"
/[\$x]at/; # منطبق با "$at" یا "xat"
/[\\$x]at/; # منطبق با «\at»، «خفاش، «گربه» یا «رت»
کاراکتر ویژه '-' به عنوان یک عملگر محدوده در کلاس های کاراکتر عمل می کند، به طوری که
«[0123456789]» و «[abc...xyz]» به شکل نرم «[0-9]» و «[az]» تبدیل میشوند:
/item[0-9]/; # منطبق با "مورد 0" یا ... یا "مورد 9" است
/[0-9a-fA-F]/; # با یک رقم هگزادسیمال مطابقت دارد
اگر '-' اولین یا آخرین کاراکتر در کلاس کاراکتر باشد، به عنوان یک کاراکتر معمولی در نظر گرفته می شود
شخصیت.
کاراکتر ویژه "^" در موقعیت اول یک کلاس کاراکتر نشان دهنده a است نفی
شخصیت کلاس، که با هر کاراکتری به جز نویسه های داخل پرانتز مطابقت دارد. هر دو و
"[^...]" باید با یک کاراکتر مطابقت داشته باشد، در غیر این صورت مطابقت ناموفق است. سپس
/[^a]at/; # با "aat" یا "at" مطابقت ندارد، اما مطابقت دارد
# همه دیگر «bat»، «cat، «0at»، «%at»، و غیره.
/[^0-9]/; # با یک کاراکتر غیر عددی مطابقت دارد
/[a^]at/; # مطابق با 'aat' یا '^at'; اینجا '^' معمولی است
پرل چند اختصار برای کلاس های کاراکتر رایج دارد. (این تعاریف همان هستند
که پرل در حالت ایمن ASCII با اصلاح کننده "/a" استفاده می کند. در غیر این صورت آنها می توانند با بسیاری از آنها مطابقت داشته باشند
کاراکترهای غیر ASCII یونیکد نیز بیشتر است. به "توالی بکسلش" در perlrecharclass مراجعه کنید
برای جزئیات.)
· \d یک رقم است و نشان دهنده است
[0-9]
· \s یک کاراکتر فضای خالی است و نشان دهنده آن است
[\ \t\r\n\f]
· \w یک کاراکتر کلمه (الفبایی یا _) است و نشان دهنده
[0-9a-zA-Z_]
· \D یک \d نفی است. نشان دهنده هر کاراکتری به جز یک رقم است
[^0-9]
· \S یک \s نفی است. نشان دهنده هر کاراکتر بدون فضای سفید است
[^\s]
· \W یک \w نفی است. هر کاراکتر غیر کلمه ای را نشان می دهد
[^\w]
· دوره '.' با هر کاراکتری به جز "\n" مطابقت دارد
اختصارات "\d\s\w\D\S\W" را می توان هم در داخل و هم در خارج از کلاس های کاراکتر استفاده کرد.
در اینجا برخی از آنها در حال استفاده هستند:
/\d\d:\d\d:\d\d/; # با قالب زمان hh:mm:ss مطابقت دارد
/[\d\s]/; # با هر رقم یا نویسه فضای خالی مطابقت دارد
/\w\W\w/; # یک کاراکتر کلمه و به دنبال آن a مطابقت دارد
# کاراکتر غیرکلمه ای، به دنبال آن یک کلمه char
/..rt/; # با هر دو نویسه مطابقت دارد، به دنبال آن "rt"
/پایان\./؛ # منطبق "پایان".
/پایان[.]/؛ # همان چیز، با "پایان" مطابقت دارد.
La کلمه لنگر "\b" با یک مرز بین یک کاراکتر کلمه و یک کاراکتر غیر کلمه مطابقت دارد
"\w\W" یا "\W\w":
$x = "Housecat به خانه و گربه می پردازد";
$x =~ /\bcat/; # گربه کبریت در "catenates"
$x =~ /cat\b/; # گربه کبریت در "گربه خانه"
$x =~ /\bcat\b/; # "گربه" در انتهای رشته مطابقت دارد
در مثال آخر، انتهای رشته به عنوان مرز کلمه در نظر گرفته می شود.
برای پردازش زبان طبیعی (به طوری که، به عنوان مثال، آپستروف در کلمات گنجانده شود)،
به جای آن از "\b{wb}" استفاده کنید
"نکن" =~ / .+؟ \b{wb} /x; # با کل رشته مطابقت دارد
تطابق این or که
میتوانیم رشتههای کاراکترهای مختلف را با the مطابقت دهیم متناوب متاکاراکتر '|'. برای مطابقت دادن
«سگ» یا «گربه» رژکس «سگ|گربه» را تشکیل می دهیم. مانند قبل، پرل سعی خواهد کرد تا با regex مطابقت داشته باشد
در اولین نقطه ممکن در رشته. در هر موقعیت شخصیت، پرل ابتدا این کار را انجام می دهد
سعی کنید جایگزین اول، "سگ" را مطابقت دهید. اگر "سگ" مطابقت نداشته باشد، پرل آن را امتحان خواهد کرد
جایگزین بعدی، "گربه". اگر "گربه" هم مطابقت نداشته باشد، مسابقه شکست می خورد و پرل
به موقعیت بعدی رشته می رود. چند نمونه:
"گربه و سگ" =~ /گربه|سگ|پرنده/; # مسابقه "گربه"
"گربه و سگ" =~ /سگ|گربه|پرنده/; # مسابقه "گربه"
اگرچه "سگ" اولین جایگزین در رژکس دوم است، "گربه" قادر به مطابقت است
اوایل در رشته
"گربه" =~ /c|ca|گربه|گربه/; # منطبق با "c"
"cats" =~ /cats|cat|ca|c/; # منطبق با "گربه"
در یک موقعیت کاراکتر معین، اولین جایگزینی که به regex امکان تطبیق می دهد
موفق خواهد بود که مطابقت دارد. در اینجا، همه گزینه ها در اولین رشته مطابقت دارند
موقعیت، بنابراین اولین مسابقات.
گروه بندی اشیاء و سلسله مراتبی مطابق
La گروه بندی متاکاراکترهای "()" اجازه می دهند بخشی از یک regex به عنوان یک واحد در نظر گرفته شود.
بخش هایی از یک regex با قرار دادن آنها در پرانتز گروه بندی می شوند. رژکس
«خانه(گربه|نگهبان)» به معنای کبریت «خانه» و به دنبال آن «گربه» یا «نگهبان» است. مقداری بیشتر
نمونه ها هستند
/(a|b)b/; # منطبق با "ab" یا "bb"
/(^a|b)c/; # با 'ac' در ابتدای رشته یا 'bc' در هر جایی مطابقت دارد
/خانه(گربه|)/; # با "گربه خانه" یا "خانه" مطابقت دارد
/خانه(گربه(ها|)|)/; # با «گربههای خانگی» یا «گربههای خانگی» یا
# "خانه". گروه های یادداشت را می توان تودرتو کرد.
"20" =~ /(19|20|)\d\d/; # با جایگزین پوچ '()\d\d' مطابقت دارد،
# زیرا '20\d\d' نمی تواند مطابقت داشته باشد
استخراج کبریت
متاکاراکترهای گروه بندی "()" نیز امکان استخراج بخش هایی از یک رشته را فراهم می کند که
تطبیق. برای هر گروه بندی، بخشی که با داخل مطابقت دارد به متغیرهای ویژه می رود
$1، $2، و غیره. آنها را می توان دقیقاً به عنوان متغیرهای معمولی استفاده کرد:
# ساعت، دقیقه، ثانیه را استخراج کنید
$time =~ /(\d\d):(\d\d):(\d\d)/; # با قالب hh:mm:ss مطابقت دارد
$hours = $1;
دقیقه دلار = 2 دلار؛
$ثانیه = 3$;
در زمینه فهرست، تطبیق "/regex/" با گروه بندی، لیست مقادیر منطبق را برمی گرداند
"($1، $2،...)". بنابراین ما می توانیم آن را به عنوان بازنویسی کنیم
($hours، $mins، $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
اگر گروهبندیها در یک regex تودرتو باشند، $1 گروهی را میگیرد که سمت چپترین باز را دارد
پرانتز، 2 دلار پرانتز باز بعدی، و غیره. برای مثال، در اینجا یک regex پیچیده است
و متغیرهای تطبیقی که در زیر آن نشان داده شده است:
/(ab(cd|ef)((gi)|j))/;
1 2 34
مرتبط با متغیرهای مطابق $1، $2، ... هستند ارجاعات به عقب "\g1"، "\g2"،
... مراجع برگشتی متغیرهای تطبیقی هستند که می توان از آنها استفاده کرد داخل یک رژکس:
/(\w\w\w)\s\g1/; # دنباله هایی مانند "the" را در رشته پیدا کنید
$1، $2، ... فقط باید خارج از یک regex استفاده شود، و "\g1"، "\g2"، ... فقط در داخل یک
regex
تطابق تکرارها
La کمیت کننده متاکاراکترهای "?"، "*"، "+"، و "{}" به ما امکان می دهند تعداد آنها را تعیین کنیم
تکرار بخشی از یک regex که ما آن را مطابقت میدانیم. کمیت ها قرار داده شده است
بلافاصله بعد از کاراکتر، کلاس کاراکتر یا گروه بندی که می خواهیم مشخص کنیم.
آنها معانی زیر را دارند:
· "آ؟" = "a" را 1 یا 0 بار مطابقت دهید
· "a*" = "a" را 0 بار یا بیشتر تطبیق دهید، یعنی هر تعداد بار
· "a+" = یک یا چند بار با 'a' مطابقت دهید، یعنی حداقل یک بار
· "a{n,m}" = حداقل "n" بار تطبیق دهید، اما نه بیشتر از "m" بار.
· "a{n,}" = حداقل "n" یا چند بار مطابقت دهید
· "a{n}" = دقیقاً برابر "n" بار
در اینجا برخی از نمونه ها:
/[az]+\s+\d*/; # یک کلمه کوچک، حداقل مقداری فاصله، و
# هر تعداد رقم
/(\w+)\s+\g1/; # مطابقت دو برابر کلمات با طول دلخواه
$year =~ /^\d{2,4}$/; # مطمئن شوید که سال حداقل 2 است اما نه بیشتر
# بیش از 4 رقم
$year =~ /^\d{4}$|^\d{2}$/; # تطابق بهتر؛ تاریخ های 3 رقمی را حذف کنید
این کمیتکنندهها سعی میکنند تا جایی که ممکن است رشته را با هم مطابقت دهند
اجازه می دهد تا regex مطابقت داشته باشد. بنابراین ما داریم
$x = 'گربه در کلاه';
$x =~ /^(.*)(at)(.*)$/; # مسابقات،
# $1 = "گربه در h"
# $2 = "در"
# $3 = '' (0 مطابق)
اولین کمیت ".*" تا آنجایی که ممکن است رشته را می گیرد در حالی که همچنان آن را دارد
بازی regex کمیت دوم ".*" رشته ای برای آن باقی نمانده است، بنابراین 0 بار مطابقت دارد.
بیشتر مطابق
چند چیز دیگر وجود دارد که ممکن است بخواهید در مورد عملگرهای تطبیق بدانید. جهانی
اصلاح کننده "//g" به عملگر منطبق اجازه می دهد تا در یک رشته به تعداد دفعات مطابقت داشته باشد
ممکن است. در زمینه اسکالر، مسابقات متوالی در برابر یک رشته دارای پرش "//g" خواهند بود
از مسابقه ای به مسابقه دیگر، پیگیری موقعیت در رشته در طول آن. تو می توانی
با تابع "pos()" موقعیت را دریافت یا تنظیم کنید. مثلا،
$x = "خانه سگ گربه"; # 3 کلمه
در حالی که ($x =~ /(\w+)/g) {
چاپ "Word $1 است، به موقعیت ختم می شود "، pos $x، "\n";
}
چاپ
کلمه گربه است، در موقعیت 3 به پایان می رسد
کلمه سگ است، در موقعیت 7 به پایان می رسد
کلمه خانه است، در موقعیت 13 به پایان می رسد
تطابق ناموفق یا تغییر رشته هدف موقعیت را بازنشانی می کند. اگر نمی خواهید
تنظیم مجدد موقعیت پس از عدم تطابق، "//c" را مانند "/regex/gc" اضافه کنید.
در زمینه فهرست، "//g" فهرستی از گروه بندی های منطبق را برمی گرداند، یا اگر گروه بندی وجود نداشته باشد،
لیستی از موارد منطبق با کل regex. بنابراین
@words = ($x =~ /(\w+)/g); # مسابقات،
# $word[0] = "گربه"
# $word[1] = "سگ"
# $word[2] = "خانه"
جستجو و جایگزین کردن
جستجو و جایگزینی با استفاده از "s/regex/replacement/modifiers" انجام می شود. جایگزین"
یک رشته دو نقل قول پرل است که هر چیزی را که با آن مطابقت دارد در رشته جایگزین می کند
"رجکس". عملگر "=~" نیز در اینجا برای مرتبط کردن یک رشته با "s///" استفاده می شود. اگر
مطابق با $_، "$_ =~" را می توان حذف کرد. اگر مطابقت وجود داشته باشد، "s///" مقدار را برمی گرداند
تعداد تعویض های انجام شده؛ در غیر این صورت false برمی گردد. در اینجا چند نمونه هستند:
$x = "زمان غذا دادن به گربه!";
$x =~ s/cat/hacker/; # $x حاوی "زمان تغذیه هکر است!"
$y = "'کلمات نقل شده'";
$y =~ s/^'(.*)'$/$1/; # نقل قول تک نواری،
# $y حاوی "کلمات نقل قول" است
با عملگر "s///"، متغیرهای مطابقت داده شده $1، $2 و غیره بلافاصله در دسترس هستند
برای استفاده در عبارت جایگزین با تغییر دهنده جهانی، "s///g" جستجو خواهد کرد و
جایگزین کردن همه رخدادهای regex در رشته:
$x = "من 4 به 4 ضربه زدم";
$x =~ s/4/four/; # $x حاوی "من چهار برای 4 زدم"
$x = "من 4 به 4 ضربه زدم";
$x =~ s/4/four/g; # $x حاوی "من چهار به چهار ضربه زدم"
اصلاح کننده غیر مخرب "s///r" باعث می شود که نتیجه جایگزینی برگردانده شود.
به جای تغییر $_ (یا هر متغیری که جایگزین با "=~" به آن محدود شده است):
$x = "من سگ ها را دوست دارم.";
$y = $x =~ s/سگ/گربه/r;
چاپ "$x $y\n"؛ # چاپ "من سگ ها را دوست دارم. گربه ها را دوست دارم."
$x = "گربه ها عالی هستند.";
چاپ $x =~ s/گربه/سگ/r =~ s/سگ/قورباغه/r =~
s/Frogs/Hedgehogs/r، "\n"؛
# چاپ "جوجه تیغی عالی هستند."
@foo = map { s/[az]/X/r } qw(abc 1 2 3);
# @foo اکنون qw است (XXX 1 2 3)
اصلاح کننده ارزیابی "s///e" یک "eval{...}" را در اطراف رشته جایگزین و
نتیجه ارزیابی شده جایگزین رشته فرعی منطبق می شود. چند نمونه:
# همه کلمات را در یک رشته معکوس کنید
$x = "گربه در کلاه";
$x =~ s/(\w+)/reverse $1/ge; # $x حاوی "eht tac ni eht tah" است
# تبدیل درصد به اعشار
$x = "نرخ بازدید 39%";
$x =~ s!(\d+)%!$1/100!e; # $x حاوی "نرخ بازدید 0.39" است
مثال آخر نشان می دهد که "s///" می تواند از جداکننده های دیگری مانند "s!!!" استفاده کند. و "s{}{}"،
و حتی "s{}//". اگر از نقلقولهای تکی "s''' استفاده شود، regex و جایگزینی هستند
به عنوان رشته های تک نقل قول در نظر گرفته می شود.
La انشعاب اپراتور
"split /regex/, string" "string" را به لیستی از زیر رشته ها تقسیم می کند و آن لیست را برمی گرداند.
Regex توالی کاراکتری را تعیین می کند که "رشته" نسبت به آن تقسیم می شود. برای
به عنوان مثال، برای تقسیم یک رشته به کلمات، استفاده کنید
$x = "کالوین و هابز";
@word = split /\s+/، $x; # $word[0] = 'کالوین'
# $word[1] = "و"
# $word[2] = "هابز"
برای استخراج لیست اعداد محدود شده با کاما، استفاده کنید
$x = "1.618,2.718, 3.142";
@const = تقسیم /،\s*/، $x; # $const[0] = '1.618'
# $const[1] = '2.718'
# $const[2] = '3.142'
اگر از regex خالی "//" استفاده شود، رشته به کاراکترهای جداگانه تقسیم می شود. اگر
regex دارای گروه بندی است، سپس لیست تولید شده حاوی زیررشته های همسان از
گروه بندی ها نیز:
$x = "/ usr / bin";
@parts = تقسیم m!(/)!, $x; # $parts[0] = ''
# $parts[1] = '/'
# $parts[2] = 'usr'
# $parts[3] = '/'
# $parts[4] = 'bin'
از آنجایی که اولین کاراکتر x$ با regex مطابقت داشت، "split" یک حرف اول خالی را نشان داد
عنصر در لیست
"استفاده کنید re 'سخت گیرانه'"
جدید در نسخه 5.22، قوانین سختگیرانه تری نسبت به موارد دیگر در هنگام کامپایل عبارات منظم اعمال می کند
الگوها می تواند چیزهایی را پیدا کند که اگرچه قانونی هستند، اما ممکن است آن چیزی نباشد که شما مد نظر دارید.
به "سخت" در re مراجعه کنید.
از perlrequick به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید