Mi az a Regex (rendszeres kifejezés)?

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ó.

karakterMit csinal?Példagyufa
^Egyezik a sor kezdetével^ abcabc, abcdef .., abc123
$Egyezik a sor végévelabc $én: abc, 123abc, theabc
.Bármely karaktert egyezzen megacabc, asg, a2c
|VAGY üzemeltetőabc | xyzabc 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 * helyettABCabc, abbcc, abcdc
+Egyszer vagy többször egyezik a + előtti karakterrela + cac, aac, aaac,
?Egyezik a karakterrel a? nulla vagy egy alkalommal. Emellett nem kapzsi meccsként is használhatóABCac, abc
\Menjen el a karakterből a hátlap után, vagy hozzon létre egy menekülési sorozatot.a \ scac

Menekülési karakterek (menekülési sorrend)

Megjegyzés: a menekülési karakterek kis- és nagybetűk.

karakterMit 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 () [] {} ^ $. | * +? \
\ 0Null karakter
\ aEgy csengő vagy riasztás.
\ bSzóhatár a legtöbb vagy visszafelé
\ BNem szóhatár
\ dEgyezik a tizedesjegyekkel (0-9)
\ DEgyezik a nem számjegyekkel
\ eEgy menekülés
\ fEgy űrlapadagolás egyezése
\ nEgy új sor egyezéséhez
\ Q ... \ EFigyelmen kívül hagyja azt a különleges jelentést, ami az egyezésben van.
\ rEgyezik a kocsi visszatérésével
\ sEgy szóköz (szóköz, \ t
\ SEgyezik a nem fehér tér karakterekkel
\ tEgy lap megfelelő
\ vEgy függőleges lap összehangolása
\ wEgyetlen szó karakterhez illeszkedik [a-zA-Z_0-9]
\ WEgyetlen 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.

karakterMit csinal?
énFigyelmen kívül hagyja az esetet (kis- és nagybetűk)
mTöbbsoros egyezés
sEgyezik az új sorokkal
xTerek és megjegyzések engedélyezése
JA csoportnevek ismételt megadása engedélyezett
UUnalmas 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