[[:oktatas:programozás:perl|< Perl]]
====== Perl regex ======
* **Szerző:** Sallai András
* Copyright (c) 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 |
===== Linkek =====
* http://www.troubleshooters.com/codecorn/littperl/perlreg.htm
* http://www.cs.tut.fi/~jkorpela/perl/regexp.html
* http://www.anaesthetist.com/mnm/perl/Findex.htm