Regex



Īsumā par regulāra izteiksme , uz regex ir teksta virkne, kas ļauj jums izveidot modeļus, kas palīdz saskaņot, atrast un pārvaldīt tekstu. Perl ir lielisks piemērs programmēšanas valoda kas izmanto regulāras izteiksmes. Tomēr tā ir vienīgā no daudzajām vietām, kur var atrast regulārus izteicienus. Regulāras izteiksmes var izmantot arī no komandrindas un teksta redaktoros, lai failā atrastu tekstu.



Mēģinot vispirms saprast regulāros izteicienus, šķiet, it kā tā būtu cita valoda. Tomēr regulāru izteiksmju apgūšana var ietaupīt tūkstošiem stundu, ja strādājat ar tekstu vai jums ir nepieciešams parsēt lielu datu apjomu. Zemāk ir regulāras izteiksmes piemērs ar katru tā sastāvdaļu. Šī regulārā izteiksme ir parādīta arī Perla programmēšanas piemēros, kas parādīti vēlāk šajā lapā.

Regulāra izteiksme



Regulāro izteicienu pamati (apkrāptu lapa)

Aplūkojot iepriekš minēto piemēru, tas var būt milzīgs. Tomēr, kad esat sapratis regulārās izteiksmes komandu darbības galveno sintaksi, varat izlasīt iepriekš minēto piemēru tā, it kā jūs lasītu šo teikumu. Diemžēl ne visās programmās, komandās un programmēšanas valodās tiek izmantoti vieni un tie paši parastie izteicieni, taču tiem visiem ir līdzība.

Raksturs Ko tas dara? Piemērs Sērkociņi
^ Atbilst rindas sākumam ^ abc abc, abcdef .., abc123
$ Sērkociņi rindas beigas abc $ mans: abc, 123abc, theabc
. Saskaņojiet jebkuru rakstzīmi a.c abc, asg, a2c
| VAI operators abc | xyz abc vai xyz
(...) Uzņemiet visu atbilstošo a) b (c) Uzņem “a” un “c”
(?: ...) Netverošā grupa a) b (?: c) Tver “a”, bet tikai “c” grupas
[...] Atbilst jebkuram saturam iekavās [abc] a, b vai c
[^ ...] Atbilst visam, kas nav iekavās [^ abc] xyz, 123, 1de
[a-z] Atbilst visām rakstzīmēm starp 'a' un 'z' [b-z] BC, prāts, xyz
{x} Precīzs “x” reižu daudzums, lai tas atbilstu (abc) {2} abcabc
{x,} Saskaņojiet “x” daudzumu reizes vai vairāk (abc) {2,} abcabc, abcabcabc
{x, y} Sakrīt starp 'x' un 'y' reizēm. a) {2,4} aa, aaa, aaaaa
* Mantkārīga spēle, kas atbilst visam * vietā ab * c abc, abbcc, abcdc
+ Atbilst rakstzīmei pirms + vienu vai vairākas reizes a + c ac, aac, aaac,
? Atbilst rakstzīmei pirms? nulle vai viena reize. Arī tiek izmantots kā negribīgs sērkociņš ab? c ac, abc
Aizbēdziet no rakstzīmes pēc slīpsvītras vai izveidojiet bēgšanas secība . a sc a c

Bēgšanas rakstzīmes (aizbēgšanas secība)

Piezīme

Escape rakstzīmes ir reģistrjutīgas.



Raksturs Ko tas dara?
Jebkura rakstzīme, kas nav minēta zemāk, pirms ir , tiks izdzēsta. Piemēram, . atbilst periodam un neveic iepriekš minēto funkciju. Rakstzīmes, no kurām jāizvairās, ir () [] {} ^ $. | * +?
0 Null raksturs.
uz In Perl , a ir zvans vai trauksmes signāls, un tas netiek izmantots parastajās izteiksmēs.
TO Sakrīt ar daudzrindu virknes sākumu.
b Vārda robeža lielākajā daļā vai atpakaļatkāpes.
B Bez vārda robežas.
d Saskaņojiet jebkuru ciparu aiz komata (0–9).
D Sakrīt ar jebkuru ciparu.
ir Saskaņot aizbēgšanu.
f Atbilst formas plūsmai.
n Spēle a jauna līnija .
Q ... E Ignorē jebkādu īpašu nozīmi tajā, kas tiek saskaņots.
r Saskaņojiet pārvadājuma atgriešanos.
s Spēles a telpa rakstzīme (atstarpe, t, r, n).
S Atbilst jebkuram ne-atstarpes rakstzīmei.
t Spēle a cilni.
v Saskaņojiet vertikālu cilni.
iekšā Sakrīt ar jebkuru vārda rakstzīmi ([a-zA-Z_0-9]).
IN Atbilst jebkuram vienam vārdam, kas nav vārds.

Regulārās izteiksmes karodziņi

Ārpus regulārās izteiksmes (beigās) karodziņi palīdz saskaņot rakstu.

Raksturs Ko tas dara?
i Ignorēt lietu ( lielie burti un mazie burti atļauts).
m Daudzrindu spēle.
s Saskaņojiet jaunas līnijas.
x Atļaut atstarpes un komentārus.
Atļauts kopēt grupu nosaukumus.
U Ungreedy mačs.

Perla programmēšanas valodas regulāro izteiksmju piemēri

Tālāk ir sniegti daži regulāru izteicienu un rakstu atbilstības piemēri Perl. Daudzi no šiem piemēriem ir līdzīgi vai vienādi ar citām programmēšanas valodām un programmām, kas atbalsta regulāras izteiksmes.

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

Iepriekš minētais piemērs aizstāj visus “sliktos datus” ar “labiem datiem”, izmantojot a reģistrjutīgs spēles. Tātad, ja $ dati mainīgais bija “Šeit ir slikti dati”, tas kļūs par “Šeit ir labi dati”.

$data =~ s/a/A/;

Šis piemērs aizstāj visus mazos burtus uz ar lielo burtu TO . Tātad, ja $ dati būtu “piemērs”, tas kļūtu par “exAmple”.

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

Iepriekš minētais piemērs aizstāj visus mazos burtus no a līdz z ar zvaigznīti. Tātad, ja $ dati būtu “Piemērs”, tas kļūtu par “E ******”.

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

Šajā piemērā tiek izmantots rakstzīme $, kas regulārajai izteiksmei liek saskaņot tekstu pirms tā virknes beigās. Tātad, ja $ dati būtu “piemērs”, tas kļūtu par “piemēriem”.

$data =~ s/./!/;

Iepriekš minētajā piemērā mēs aizstājam a periodā ar izsaukuma zīme . Tā kā periods ir metaraksts, ja ievadījāt periodu tikai bez ( aizbēgt ) to uzskata par jebkuru rakstzīmi. Šajā piemērā, ja $ dati būtu “piemērs”. tas kļūtu par 'piemēru!', tomēr, ja jums nebūtu bēgšanas, tas aizstātu katru rakstzīmi un kļūtu par '!!!!!!!!'

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

Visbeidzot, šajā iepriekš minētajā piemērā (^) liek regulārajai izteiksmei sakrist ar jebko rindas sākumā. Šajā piemērā jebkura mazā burta “e” rindas sākumā tiek aizstāta ar lielo burtu “E.” Tāpēc, ja $ dati būtu “piemērs”, tas kļūtu par “piemēru”.

Padoms

Ja vēlaties vēl vairāk izpētīt regulāros izteicienus tādās komandās kā saķere vai regulāras izteiksmes programmēšanas valodā skatiet O'Reilly grāmatu 'Regulāru izteiksmju apguve'.