Reguláris kifejezés: mit jelent

click fraud protection

Mi az a reguláris kifejezés?

Regex, vagy reguláris kifejezések, egy mintának megfelelő jelölés, amely programozók használja a szöveg bizonyos mintáinak keresésére. A rendszeres kifejezések szinte bármit kereshetnek, attól függően, hogy miként strukturálod őket; a programozók mindenütt használják, mert felbecsülhetetlen értékűek abban, hogy segítsenek a számítógépeknek az adatok gyors válogatásában és az olyan hülyeségek kiszűrésében, amelyek egyébként hibákat okozhatnak.

A rendszeres kifejezések általában ijesztőnek tűnnek, különösen a nem programozók számára. Csak nézd meg ezt:

[a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 _-] + \. [a-zA-Z0-9 _.-] +

Reálisan nem is olyan rossz; hogy egyezik az e-mail címekkel. Mint látni fogod, a kifejezéseket külön karakterekre lehet bontani, amelyek mind megmondják a programnak, hogy mire kell figyelni.

A reguláris kifejezések szinte egyetemesek. Ugyanaz a tábornok szintaxis minden nyelvre vonatkozik, itt-ott csak kis eltérésekkel. Ez az útmutató a Python és a JavaScript példáit, valamint a régi regexet tartalmazza. Ha más nyelven dolgozik, ne aggódjon. Szinte minden a választott nyelvre is érvényes lesz.

instagram viewer

Regex alapjai

Technikailag nincs sok olyan dolog, amelyet ne lehetne reguláris kifejezésnek tekinteni, mert a szöveg szó szerinti szövege valóban egyszerű. Ha az 'abcde' kifejezést használná reguláris kifejezésként, akkor a programozási nyelv erre a karakterláncra keresne.

Az első dinamikusabban illeszkedő karakter, amelyet meg kell nézni, a '.' karakter. Ebben az összefüggésben a dot karakter helyettesítő karakter. Ha ezzel keres, a program minden olyan karaktert visszaad, amelyet talál.

Szóval, mi van, ha szó szerinti pontot akar keresni? Az sem nehéz. Ha szó szerinti periódust akar használni, akkor előtte írjon egy visszavonást, így: '\.'

Visszavágó karakterek

A visszavágás azonban még rengeteg szerepet játszik itt. A főbb regex karakterek többségében visszavágás szerepel.

Reguláris kifejezés számjegyei
Számjegyek keresése regexszel a Pythonban.

Vessen egy pillantást néhány példára:

  • \ d: 0 és 9 közötti számjegy
  • \ w: "Szó karakterek" betűk, számjegyek és aláhúzások
  • \ s: szóköz karakterek, beleértve a tabulátorokat, az új sorokat és a normál szóközöket

Ha ezek helyett a nagybetűt használja, akkor ennek fordítottja lesz. Például a '\ D' számjegyek kivételével mindent megad.

Osztályok

A visszahúzott karakterek jók, de még mindig merevek. Általában betűket, számokat vagy néhány speciális karaktert szeretne egyeztetni.

Reguláris kifejezés osztályok
Regex osztályok használata betűk keresésére a Pythonban.

Helyezze az egyeztetni kívánt karaktereket szögletes zárójelbe '[]', és programja bármelyikhez illeszkedik. Ezt nevezzük regex osztálynak.

[abcd1234]

A fenti példa még mindig nem hatékony. Ehelyett kötőjel segítségével megadhat egy tartományt; például minden kisbetű:

[a-z]

Sorolhat tartományokat is. Az alábbi kifejezés minden betűnek és számjegynek megfelel:

[a-zA-Z0-9]

Ha a kötőjelet a karakterkészletbe is belefoglalja, a végén ragassza rá, hogy megakadályozza az értékelését. Más speciális karakterekkel is működik.

[a-zA-Z0-9 _. + -]

A visszavágó karakterekhez hasonlóan itt is megkapja az inverz eredményt. Helyezzen egy '^' betűt az osztály elejére, hogy kizárja őket az eredményekből. Ez kizárja a számjegyeket és számos speciális karaktert az eredményekből:

[^0-9_+.-]

Csoportok

A csoportok zárójeleket használnak a kifejezés szétválasztására. Csoportosítják az adatokat, így a program megcélozhatja és felhasználhatja azokat. Amikor egy program levágja a ' http://' webcímről regex csoportokat használ ennek eléréséhez. A regex lehetővé teszi bizonyos kritériumok megcélzását, a csoportok pedig külön szakaszok elkülönítését.

Reguláris kifejezés csoportok
A Regex csoportok segítenek megtalálni az URL-eket a JavaScript-ben.

A csoportok emellett választhatnak egyik vagy másik minta közül. Egyetlen '|' "vagy" néven viselkedni a kifejezésben. Az alábbi kifejezés a következők bármelyikével fog egyezni: .com, .org, .net, .edu vagy .gov.

\. (com | org | net | edu | gov)

Számszerűsítők

A kvantorok pontosan olyanok, amilyennek hangzanak. Megmondják a kifejezésnek a keresett karakter mennyiségét. Ezek a rendelkezésre álló kvantorok:

  • *: Nulla vagy több
  • +: Egy vagy több
  • ?: Nulla vagy egy
  • {3}: A zárójelben szereplő összeg

Helyezze ezen kvantorok bármelyikét annak a karakternek vagy osztálynak a végére, amelynek mennyiségét meg szeretné adni. Ez a példa standard hétjegyű telefonszámokat keres:

\ d {3} [. * -] \ d {3} [. * -] \ d {4}

Horgonyok és határok

A reguláris kifejezések lehetővé teszik a minták keresését a szövegsorban vagy egy szó körüli pozíciójuk alapján.

Reguláris kifejezésű horgonyok
A Regex horgonyok helymeghatározással keresnek egyezést a JavaScript-ben.

Ezek az elsődleges lehetőségek:

  • ^: A karakterlánc eleje
  • $: A karakterlánc vége
  • \ b: Szóhatár (egy szó eleje vagy vége)

Ha csak betűvel kezdődő karakterláncokat szeretne megtalálni, akkor kipróbálhatja:

^ [a-zA-Z]

Mondja, hogy csak az "it" szót akarja megtalálni, nem pedig az I és T betűket tartalmazó szavakat; ott használná a szóhatárokat.

\ b (i | I) t \ b

Végső gondolatok

A rendszeres kifejezések rengeteg fejfájást takaríthatnak meg a programozás során. Képzelje el, hogy megpróbál logikát írni a cikk bármely példájának megvalósításához. Szörnyű rendetlenség lenne. Miután jól érzi magát velük, valószínűleg azon kapja magát, hogy igazán élvezi a regex erejét és rugalmasságát.

instagram story viewer