[[: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