Tartalomjegyzék
Perl regex
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2015
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
A Regular Expression vagy röviden regex, magyarul szabályos kifejezések néven fordítható. Néha szokták regex helyett regexp-ként is rövidíteni. Összehasonlításokat végezhetünk egy szöveg és egy adott minta között.
Egyezés vizsgálata
#!/usr/bin/env perl $str = "abd"; if($str =~ m/ab?/) { print "Egyezik\n"; }else { print "Nem egyezik\n"; }
Nemegyezés vizsgálata
$mystring !~/blahblah/;
Egyezés a sor elejére
/^Jóska/
Egyezés a sor végére
/Jóska$/
Egyezés egyik karakterre
/a[bo]c/
Akkor egyezik, ha középen „b” vagy „o” karakter van.
Bármilyen karakterre egyezés
Bármilyen egy darab karakterre egyezik, kivéve újsor.
/a.c/
Ha „a” és „c” között nincs karakter, akkor nincs egyezés.
Egyezés több karakterre
/a.+c/
Ekkor „a” és „c” karakter között több bármilyen karakter is lehet. De ha egy sincs, akkor nem egyezik.
/a.*c/
Itt már akkor is egyezik, ha „a” és „c” karakter között egyetlen karakter sincs.
Módosítók
A Perl nyelv alpértelmezetten Case Sensitive, azaz kisbetű nagybetű érzékeny. Tehát ha adott a /Perl/ minta, az nem egyezik a „perl” szóval, csak ha a „p” az nagybetű.
Módosítóval rávehetjük a Perlt, hogy ne legyen érzékeny a kis és nagybetűk különbségére:
/perl/i A módosítót az utolsó „/” jel után tesszük.
Más módosítók:
Módosító | Használat |
---|---|
i | Kis- és nagybetű érzékenység kikapcsolva |
g | Minden előfordulás keresése |
m | Több soros. Újsorok jelölése ^ és $ karakterekkel |
s | Egyetlen sorként kezeljük. Így egy /./ esetén az újsor is egyezik |
x | Szabályos kifejezések bővítése (megjegyzésekkel és elválasztó karkterekekkel |