Regex



Rövid reguláris kifejezés , nak nek regex egy szövegsor, amely lehetővé teszi olyan minták létrehozását, amelyek segítenek a szöveg illesztésében, megkeresésében és kezelésében. Perl nagyszerű példa a programozási nyelv amely a reguláris kifejezéseket használja. Ez azonban csak egy a sok közül, ahol rendszeres kifejezéseket találhat. A rendszeres kifejezéseket a parancssorból és a szövegszerkesztőkből is fel lehet használni a fájlok szövegének megtalálásához.



Amikor először próbálta megérteni a reguláris kifejezéseket, úgy tűnik, mintha egy másik nyelv lenne. A rendszeres kifejezések elsajátítása azonban több ezer órát takaríthat meg, ha szöveggel dolgozik, vagy ha nagy mennyiségű adatot kell elemeznie. Az alábbiakban bemutatunk egy példát egy szabályos kifejezésre, amelynek minden összetevőjét felcímkézzük. Ezt a reguláris kifejezést az ezen oldalon később bemutatott Perl programozási példák is mutatják.

Reguláris kifejezés



A reguláris kifejezések alapjai (csalólap)

A fenti példát tekintve elsöprő lehet. Ha azonban megértette a reguláris kifejezés parancsainak alapvető szintaxisát, elolvashatja a fenti példát, mintha ezt a mondatot olvassa. Sajnos nem minden program, parancs és programnyelv használja ugyanazt a reguláris kifejezést, de mindegyikben hasonlóság van.

karakter Mit csinal? Példa Meccsek
^ Megfelel a sor elejének ^ abc abc, abcdef .., abc123
$ Meccsek a vonal vége abc $ én: abc, 123abc, theabc
. Párosítson bármilyen karaktert a.c abc, asg, a2c
| VAGY operátor abc | xyz abc vagy xyz
(...) Rögzítsen bármit, ami megfelel (ABC) „A” és „c” rögzítése
(?: ...) Nem elfogó csoport (ABC) Az „a” rögzítése, de csak a „c” csoportok rögzítése
[...] Megegyezik a tartalommal zárójelek [ABC] a, b vagy c
[^ ...] Megfelel mindennek, amely nincs zárójelben [^ abc] xyz, 123, 1de
[a-z] Bármilyen karaktert illeszt az 'a' és a 'z' közé [b-z] bc, elme, xyz
{x} Pontos „x” számú alkalom, hogy megfeleljen (abc) {2} abcabc
{x,} Illessze az x számot, vagy többször (abc) {2,} abcabc, abcabcabc
{x, y} Egyezik az 'x' és az 'y' idők között. a) {2,4} aa, aaa, aaaaa
* Kapzsi meccs, amely mindenre megfelel a * helyén ABC abc, abbcc, abcdc
+ Megfelel a karakter előtt egy vagy többször a + c ac, aac, aaac,
? Egyezik a karakterrel a? nulla vagy egyszer. Szintén nem mohó meccsként használják ABC ac, abc
Menjen el a karaktertől a visszavágás után, vagy hozzon létre egy menekülési sorrend . a sc a c

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

jegyzet

A menekülési karakterek megkülönböztetik a kis- és nagybetűket.



karakter Mit csinal?
Minden, az alábbiakban nem említett karakter, amelyet elõz meg, el lesz mentve. Például, . pontnak felel meg, és nem látja el a fent említett funkciót. A karakterek, amelyeket el kell kerülni, a () [] {} ^ $. | * +?
0 Null karakter.
ak nek Ban ben Perl , a harang vagy riasztó, és nem használatos reguláris kifejezésekben.
NAK NEK Illessze össze a többsoros karakterlánc elejét.
b Szóhatár a legtöbbben vagy a visszalépés.
B Nem szóhatár.
d Tegyen tetszőleges tizedesjegyet (0–9).
D Illesszen be minden nem számjegyet.
is Egyezik meg a meneküléssel.
f Tegyen egy űrlaptáblát.
n Mérkőzés a új sor .
Q ... E Figyelmen kívül hagy minden különös jelentést abban, ami párosul.
r Egyezik a kocsi visszaútjával.
s Mérkőzések a tér karakter (szóköz, t, r, n).
S Bármely nem fehér szóköz karakterhez illeszkedik.
t Mérkőzés a fülre.
v Illesszen egy függőleges lapot.
an ben Bármelyik szó karakterhez illeszkedik ([a-zA-Z_0-9]).
BAN BEN Bármelyik nem szóból álló karakterhez illeszkedik.

Reguláris kifejezés zászlók

A szabályos kifejezésen kívül (a végén) a zászlók segítenek a minták illesztésében.

karakter Mit csinal?
én Hagyja figyelmen kívül az esetet ( nagybetűs és kisbetűs megengedett).
m Többsoros mérkőzés.
s Egyezzen új sorokkal.
x Szóközök és megjegyzések engedélyezése.
J Ismétlődő csoportnevek megengedettek.
U Ungreedy meccs.

Perl programozási nyelv reguláris kifejezés példák

Az alábbiakban bemutatunk néhány példát a Perl rendszeres kifejezéseire és a mintaillesztésre. Ezen példák közül sok hasonló vagy ugyanaz, mint más programozási nyelvek és programok, amelyek támogatják a reguláris kifejezéseket.

$data =~ s/bad data/good data/i;

A fenti példa minden „rossz adatot” helyettesít „jó adatokkal” az a használatával kis- és nagybetűk mérkőzés. Tehát ha a $ adatok változó A 'rossz adatok' itt lett: 'Itt vannak a jó adatok'.

$data =~ s/a/A/;

Ez a példa minden kisbetűt helyettesít nak nek nagybetűvel NAK NEK . Tehát ha a $ data 'példa' lenne, akkor az 'exAmple' lesz.

$data =~ s/[a-z]/*/;

A fenti példa minden kisbetűt, az a – z, csillaggal helyettesít. Tehát, ha a $ data 'példa', akkor 'E ******' lesz.

$data =~ s/e$/es/;

Ez a példa a $ karaktert használja, amely megmondja, hogy a reguláris kifejezés illeszkedjen az előtte lévő szöveghez a karakterlánc végén. Tehát, ha a $ data 'példa' lenne, akkor 'példa' lesz.

$data =~ s/./!/;

A fenti példában a időszak egy valamivel felkiáltójel . Mivel a periódus metakarakter, ha csak a ( menekülni ) minden karakterként kezelik. Ebben a példában, ha a $ data 'példa' lenne. „példa!” lesz belőle, azonban ha nincs menekülési lehetőséged, akkor minden karaktert felvált és „!!!!!!!!” lesz.

$data =~ s/^e/E/;

Végül ebben a fenti példában a nem (^) megmondja a reguláris kifejezésnek, hogy az illeszkedjen a sor elejére. Ebben a példában a sor elején lévő bármely „e” kisbetűt nagybetűvel „E” váltja fel. Ezért, ha a $ data 'példa', akkor 'példa' lesz.

Tipp

Ha még jobban meg akarja fedezni a reguláris kifejezéseket a következő parancsokban: markolat , vagy a programozási nyelv rendszeres kifejezései olvassák el az O'Reilly 'Reguláris kifejezések elsajátítása' című könyvét.