A rendszeres kifejezés rövidsége, a regex olyan szöveglánc, amely lehetővé teszi, hogy olyan mintákat hozzon létre, amelyek segítenek a szöveg összeállításában, megtalálásában és kezelésében. A Perl jó példája a programnyelvnek, amely rendszeres kifejezéseket használ. Azonban a sok hely közül csak az egyik talál szabályos kifejezéseket. A rendszeres kifejezések a parancssorból és a szövegszerkesztőkből is használhatók a szövegben található szövegek kereséséhez.
Amikor először megpróbáljuk megérteni a reguláris kifejezéseket, úgy tűnik, mintha más nyelv lenne. Ugyanakkor a rendszeres kifejezések elsajátítása több ezer órát takaríthat meg, ha szöveggel dolgozik, vagy nagy adatmennyiséget kell feldolgoznia. Az alábbiakban egy példa a rendszeres kifejezésre minden egyes összetevővel megjelölt címkével. Ezt a szabályos kifejezést a Perl programozási példákban is bemutatjuk, amelyeket később az oldalon mutatunk be.
A rendszeres kifejezések alapjai (cheat sheet)
A fenti példát tekintve túlnyomó lehet. Azonban, ha megérti a rendszeres kifejezésparancsok működésének alapvető szintaxisát, olvassa el a fenti példát, mintha ezt a mondatot olvassa. Sajnos nem minden program, parancs és programozási nyelv ugyanazt a rendszeres kifejezést használja, de ezek mindegyike hasonló.
karakter | Mit csinal? | Példa | gyufa |
---|---|---|---|
^ | Egyezik a sor kezdetével | ^ abc | abc, abcdef .., abc123 |
$ | Egyezik a sor végével | abc $ | én: abc, 123abc, theabc |
. | Bármely karaktert egyezzen meg | ac | abc, asg, a2c |
| | VAGY üzemeltető | abc | xyz | abc vagy xyz |
(...) | Rögzítsen valamit, ami megfelel | (ABC) | "A" és "c" felvételeket készít |
(? ...) | Nem rögzítő csoport | (ABC) | „A”, de csak a „c” csoportokat rögzíti |
[...] | Egyezik a zárójelben foglaltakkal | [ABC] | a, b vagy c |
[^ ...] | Egyezik a zárójelben nem szereplőekkel | [^ Abc] | xyz, 123, 1de |
[AZ] | Megfelel minden karaktert az 'a' és a 'z' között | [Bz] | bc, elme, xyz |
{x} | A pontos „x” -es idők száma | (ABC) {2} | abcabc |
{x, } | Az x-es vagy annál több alkalommal egyezzen meg | (ABC) {2, } | abcabc, abcabcabc |
{X, y} | Egyezés az 'x' és az 'y' idők között. | (A) {2, 4} | aa, aaa, aaaaa |
* | Mohó meccs, amely mindent megegyez a * helyett | ABC | abc, abbcc, abcdc |
+ | Egyszer vagy többször egyezik a + előtti karakterrel | a + c | ac, aac, aaac, |
? | Egyezik a karakterrel a? nulla vagy egy alkalommal. Emellett nem kapzsi meccsként is használható | ABC | ac, abc |
\ | Menjen el a karakterből a hátlap után, vagy hozzon létre egy menekülési sorozatot. | a \ sc | ac |
Menekülési karakterek (menekülési sorrend)
Megjegyzés: a menekülési karakterek kis- és nagybetűk.
karakter | Mit csinal? |
---|---|
\ | Minden olyan karakter, amely nem szerepel az alábbiakban, egy \ t Például, \. megegyezik egy időszakkal, és nem hajtja végre a fent említett funkciót. A megszüntetendő karakterek () [] {} ^ $. | * +? \ |
\ 0 | Null karakter |
\ a | Egy csengő vagy riasztás. |
\ b | Szóhatár a legtöbb vagy visszafelé |
\ B | Nem szóhatár |
\ d | Egyezik a tizedesjegyekkel (0-9) |
\ D | Egyezik a nem számjegyekkel |
\ e | Egy menekülés |
\ f | Egy űrlapadagolás egyezése |
\ n | Egy új sor egyezéséhez |
\ Q ... \ E | Figyelmen kívül hagyja azt a különleges jelentést, ami az egyezésben van. |
\ r | Egyezik a kocsi visszatérésével |
\ s | Egy szóköz (szóköz, \ t |
\ S | Egyezik a nem fehér tér karakterekkel |
\ t | Egy lap megfelelő |
\ v | Egy függőleges lap összehangolása |
\ w | Egyetlen szó karakterhez illeszkedik [a-zA-Z_0-9] |
\ W | Egyetlen nem szó karakterrel egyezik |
Normál kifejezés zászlók
A rendszeres kifejezésen kívül (a végén) a minták illeszkedéséhez segíthetnek a zászlók.
karakter | Mit csinal? |
---|---|
én | Figyelmen kívül hagyja az esetet (kis- és nagybetűk) |
m | Többsoros egyezés |
s | Egyezik az új sorokkal |
x | Terek és megjegyzések engedélyezése |
J | A csoportnevek ismételt megadása engedélyezett |
U | Unalmas meccs |
Perl programozási nyelv rendszeres kifejezés példák
Az alábbiakban néhány példa a Perl-ben a rendszeres kifejezésekre és a mintázatokra. Ezek közül a példák közül sokan hasonlítanak a többi programozási nyelvhez és a rendszeres kifejezéseket támogató programokhoz.
$ data = ~ s / rossz adat / jó adat / i;
A fenti példa helyettesíti a "rossz adatokat" "jó adatokkal" egy eset-érzéketlen egyezést használva. Tehát, ha a $ adatváltozó "A rossz adatok", akkor "Itt jó adatok" lesz.
$ data = ~ s / a / A /;
Ez a példa a kisbetűket egy nagybetűvel helyettesíti. Tehát, ha a $ adat "példa" lenne, akkor az "exAmple" lesz.
$ data = ~ s / [az] / * /;
A fenti példa helyettesíti a kisbetűket, az a-z-t csillaggal. Tehát, ha a $ adat "Példa" lenne, akkor az "E ******" lesz.
$ data = ~ s / e $ / es /;
Ez a példa a $ karaktert használja, amely azt mondja a rendszeres kifejezésnek, hogy a szöveg előtti szöveget a karakterlánc végén adja meg. Tehát ha a "$" adat "példa" lenne, akkor "példák" lettek.
$ data = ~ s /
A fenti példában egy felkiáltójeles időszakot helyettesítünk. Mivel az időszak meta-karakter, ha csak a (menekülés) nélküli időszakba lépett be, Ebben a példában, ha a $ adat "példa" volt. "példa!" lett volna, de ha nem lett volna a menekülés, akkor minden karaktert helyettesítenénk és "!!!!!!!!"
$ data = ~ s / ^ e / E /;
Végül, a fenti példában a caret (^) azt mondja a rendszeres kifejezésnek, hogy bármit illeszkedjen a sor elején. Ebben a példában ez a sor elején lévő kisbetűkkel egyezik meg, és helyettesítené azt egy főváros E.-vel. Ezért, ha a $ adat "példa", akkor "példa" lesz.
Tipp: Ha a reguláris kifejezéseket még inkább a grep, vagy a programnyelv rendszeres kifejezéseiben szeretné felfedezni, nézze meg az O'Reilly könyvet "Rendszeres kifejezések elsajátítása".
Számítógépes rövidítések, Escape sorozat, Expression, Glob, Meta-karakter, Programozási feltételek, Tilde, Wildcard