regex مقدماتی
الگو با m//، اتصال با =~، کلاسهای کاراکتری \d \w \s.
پرل = پادشاه regex
موتور regex پرل استانداردی است که بقیه زبانها کپی کردهاند. بیایید از پایه شروع کنیم!
الگوی ساده
my $str = "Hello World";
if ($str =~ /World/) {
say "پیدا شد!";
}
if ($str =~ /xyz/) {
say "این چاپ نمیشود";
}
عملگر
=~ یعنی «این رشته را با این الگو تطبیق بده». اگر الگو جایی در رشته باشد، true برمیگردد.!~ — برعکس
if ($str !~ /Python/) {
say "Python ندارد";
}
کلاسهای کاراکتری
| الگو | معنی | مثال تطبیق |
|---|---|---|
\d | رقم | 5 |
\w | حرف/رقم/_ | a, 5, _ |
\s | فاصله | space, tab |
. | هر کاراکتری | a, !, 5 |
[aeiou] | یکی از اینها | a |
[a-z] | بازه | m |
[^abc] | بهجز اینها | d |
تکرارکنندهها
| الگو | معنی |
|---|---|
* | صفر یا بیشتر |
+ | یک یا بیشتر |
? | صفر یا یک |
{3} | دقیقاً ۳ بار |
{2,4} | ۲ تا ۴ بار |
لنگرها
| الگو | معنی |
|---|---|
^ | اول رشته |
$ | آخر رشته |
مثالهای عملی
my $phone = "0912-123-4567";
if ($phone =~ /^\d{4}-\d{3}-\d{4}$/) {
say "فرمت تلفن معتبر!";
}
my $zip = "12345";
say "ZIP معتبر" if $zip =~ /^\d{5}$/;
پرچم i — بیتوجه به حروف
my $s = "Hello World";
if ($s =~ /hello/i) {
say "با i پیدا شد!"; { حروف بزرگ/کوچک مهم نیست }
}
خلاصه
- =~ تطبیق، !~ عدم تطبیق
- \d رقم، \w حرف، \s فاصله
- + * ? {n} تکرار
- ^ $ لنگر اول/آخر
این مبحث بخشی از دوره آموزش کامل پرل است.