A reguláris kifejezések szintaxisa (posix)

A POSIX szabályos kifejezések szerkezete némileg hasonlít a tipikus matematikai kifejezések szerkezetéhez - a különböző elemek (operátorok) kombinálódnak egymással és összetettebb kifejezéseket alkotnak. Azonban az egyesítő elemek értelme olyan rendszeres kifejezéseket jelent, amelyek ilyen erős és kifejező eszközt jelentenek. Lehetőségek nem korlátozódnak a szó szerinti szöveg megtalálásához (például egy adott szó vagy szám); Különféle szemantikájú sztringeket kereshet, de hasonló szintaxisokat - például a fájl összes HTML-címkéjét.

A legegyszerűbb szabályos kifejezés egy literális szimbólummal egyezik meg - például az "g" kifejezés olyan formában érkezik, mint a g, a haggle és a bag. A több szó szerinti szimbólum kombinálásával kapott kifejezés ugyanazokkal a szabályokkal egyezik meg, például a szekvencia gan minden olyan karakterláncot illeszkedik, amely ezeket a karaktereket tartalmazza (például banda, szervez, vagy Reagan).

A (függőleges sáv) kezelője ellenőrzi az egyik lehetséges alternatíva egyezését. Például a szabályos kifejezés php | zend ellenőrzi a php vagy a zend sorát.

Szögletes zárójelek

A szögletes zárójelek ([]) különös jelentéssel bírnak a szabályos kifejezések összefüggésében - a zárójelben szereplő zárójelben szereplő karaktereket jelenti. A php szabályos kifejezéssel ellentétben, amely egybevág a szöveges php-t tartalmazó összes sorban, a [php] kifejezés a p vagy h szimbólumokat tartalmazó bármely sorban egyezik. A szögletes zárójelek fontos szerepet játszanak a szabályos kifejezésekkel való együttműködésben, mivel a keresési folyamatban gyakran előfordul, hogy egy adott időközön belül megtalálják a karaktereket. Az alábbiakban néhány gyakori időköz:

  • [0-9] - megfelel minden decimális számjegynek 0 és 9 között;
  • [a-z] - az a-tól z-ig bármilyen kisbetűs karaktert illesz;
  • [A-Z] - minden nagybetűvel megegyezik az A-tól Z-ig;
  • [a -Z] - a kisbetűs vagy nagybetűs karaktereket illeszti a-tól Z-ig.

Természetesen a fent felsorolt ​​intervallumok csupán általános elveket mutatnak. Például használhatja a [0-3] intervallumot arra, hogy minden decimális számjegyet 0 és 3 között, vagy a [b-v] intervallumot jelöljön, hogy kisbetűs karaktert jelöljön b-től v-ig. Röviden, az intervallumok teljesen önkényesek.

kvantifikátorok

Van egy speciális szolgáltatási szimbólum, amely egyetlen karakter ismétlésének számát vagy szögletes zárójelben lévő szerkezetet jelöli. Ezeket a szolgáltatásszimbólumokat (+, * és) kvantálóknak nevezzük. A cselekvésük elve leginkább példákkal magyarázható:

  • p + jelöli egymás után egy vagy több p szimbólumot;
  • p * a p szimbólumok közül nulla vagy annál többet jelent;
  • p? jelentése nulla vagy egy karakter p;
  • p jelentése két szimbólum, egymás után állva;
  • p jelentése két-három szimbólum, egymás után állva;
  • p jelentése két vagy több p szimbólum egymás után.

Egyéb szolgáltatási szimbólumok

A $ és ^ szimbólum szimbólumok egybeesnek a szimbólumokkal, de bizonyos vonalbeli pozíciókban. Például a p $ kifejezés olyan sztringet jelent, amely a p szimbólummal végződik, és a ^ p kifejezés olyan sztring, amely a p szimbólummal kezdődik.

  • Az építés [^ a-zA-Z] egybeesik minden olyan karakterrel, amely nem szerepel a megadott intervallumokban (a-z és A-Z).
  • A szerviz szimbólum (pont) jelentése "bármilyen karakter". Például a p.p kifejezés egybeesik a p szimbólummal, amelyet egy tetszőleges szimbólum követ, amelyet a p szimbólum követ.

A szolgáltatásszimbólumok kombinációja összetettebb kifejezések megjelenéséhez vezet. Vegyünk néhány példát:

  • ^. $ - minden olyan karakterlánc, amely pontosan két karaktert tartalmaz;
  • (. *) - a karakterek tetszőleges sorozata között <Ь> és (valószínűleg HTML-címkék a félkövér betű megjelenítéséhez);
  • p (hp) * a p karakter, amit a hp sorozata (pl. phphphp) nullával és több példányával követ.

Néha a használati szimbólumokat szlogenekben kell találni, ahelyett, hogy azokat a leírt speciális kontextusban használnák. Ehhez a kiszolgáló karakterek el lesznek fordítva (\). Például egy pénzösszeg dollárban történő kereséséhez használhatja a \ $ [0-9] + kifejezést, vagyis egy "dollárjelet, amelyet egy vagy több tizedesjegyet követ". Vegye figyelembe a backslash értéket $ előtt. A rendszeres kifejezéshez tartozó lehetséges egyezések: $ 42, $ 560 és $ 3.

Standard intervallum kifejezések (karakterosztályok)

A programozás kényelmét illetően néhány standard intervallum kifejezést, más néven karakterosztályt definiáltak a POSIX szabványban. A karakterosztály egy karaktert határoz meg egy adott időintervallumból - például egy ábécé betű vagy egy számjegy:

  • [[: alpha:]] - az ábécé karakter (aA-zZ);
  • [[digit:]] - a számjegy (0-9);
  • [[: alnum:]] - az ábécé karakter (aA-zZ) vagy a számjegy (0-9);
  • [[: space:]] - mulasztások (újsor, lap, stb.).

Ha nem találtad meg, amit keresett, akkor azt javaslom, hogy használja a keresést a webhelyen:

Kapcsolódó cikkek