SzámítógépekProgramozás

PHP (regex) - mi ez? Példák és ellenőrzése a reguláris kifejezések

Amikor dolgozik szöveget bármilyen modern programozási nyelv, a fejlesztők folyamatosan eleget azzal a céllal bemenet érvényesítési való megfelelés a kívánt mintát, keresés és csere teszt töredékek és más típusú feldolgozási műveletek jellem információkat. Fejleszteni a saját ellenőrzési algoritmusok vezet időveszteség, a kód kompatibilitás és összetettsége a fejlesztési és a modernizáció.

A gyors fejlődése az internet és a web-design szükséges nyelven létrehozását sokoldalú és kompakt eszköz szövegfeldolgozás, minimális mennyiségű ehhez szükséges kódot. Ez sem kivétel, és a népszerű kezdő és profi fejlesztők PHP nyelv. A reguláris kifejezések nyelve, mint a szöveges sablonokat leegyszerűsíti a kezelő a szöveget, és csökkenti a kódot tíz és száz vonalak. Sok problémát nem lehet megoldani egyáltalán nélküle.

Szabályos kifejezések a PHP

PHP nyelv három mechanizmusokat dolgozott a reguláris kifejezések - «ereg», «mb_ereg» és «preg». A leggyakoribb az a felület «preg», amelynek funkciói hozzáférést biztosít a könyvtár a PCRE reguláris kifejezés támogatás, eredetileg a Perl nyelvet, ami benne van a PHP csomagban. Preg-kereső funkció egy adott szöveget egyezés szerint egy bizonyos mintát a nyelv reguláris kifejezések.

szintaxis alapjai

Ennek része egy rövid cikket lehetetlen részletesen leírják az egész reguláris kifejezés szintaktikai, erre van egy speciális irodalomban. Bemutatjuk csak a fő elemeit megjeleníthető lehetőségeket fejlesztő és megérteni a kódot példákat.

A PHP reguláris kifejezés formálisan meghatározott nagyon nehéz, ezért egyszerűsíteni a leírás. A reguláris kifejezés egy szövegből. Ez áll egy dedikált elválasztó sablont, és a módosító jelző módon lehet kezelni. Lehetséges felvételét a különböző alternatívák ismétlések és mintákat.

Például, a kifejezés / \ d {3} - \ d {2} - \ d {2} / m elválasztó "/", majd a sablon, és a szimbólum «m» a módosítót.

Minden hatalom a reguláris kifejezések használatával kódoljuk meta-karaktereket. A fő nyelv metakaraktert a backslash - „\”. Ez megváltoztatja a típusát következő karaktereket a szemközti (azaz. E. átváltva közönséges karakterként helyettesítő és fordítva). Egy másik fontos metakaraktert egy egyenes vonal «|» meghatározza az alternatív sablon. További példák a meta-karakterek:

^ Kezdés tárgy vagy egy string
( Kezdés alminta
) vége alminta
{ Kezdet kvantor
} vége kvantor
\ d decimális számjegy 0-9
\ D bármely karakter, ami nem több
\ s üres szimbólum, space, tab,
\ w Szimbólumszótár

PHP reguláris kifejezések feldolgozása, a tér tekinthető különálló érvényes karakter, így a kifejezés XYZ és az ABC WHERE különböző.

részminták

A PHP reguláris részminták zárójelben, és ezek néha „részkifejezésekre”. A következő feladatokat:

  1. Allocation alternatívák. Például a hő minta (valami | Bird |) egybeesik a „meleg”, „Firebird” és a „forró”. És anélkül, hogy a zárójelben csak akkor lesz egy üres karakterlánc, „madár” és a „forró”.

  2. „Látványos” alminta. Ez azt jelenti, hogy ha a minta illeszkedô, majd visszatér az összes mérkőzést. Az egyértelműség kedvéért, adunk egy példát. Adott a következő reguláris kifejezés: a győztes kap ((arany | aranyozott) (érem | cup)) - és a húr mérkőzések, „a győztes kap egy aranyérmet.” Amellett, hogy a kezdő mondat, a keresési eredmények fognak ki: „aranyérem”, „medál”, „arany”.

Az üzemeltetők ismétlések (kvadrifikatory)

Összeállításánál a reguláris kifejezés gyakran szükséges, hogy elemezze az ismétlés a számok és szimbólumok. Ez nem probléma, ha nem sok ismétlést. De mi a teendő, ha nem tudjuk a pontos számát? Ebben az esetben van szükség, hogy speciális metakaraktereket.

A leírás, ismétlések használt kvadrifikatory - metakaraktereket adja meg a számot. Kvadrifikatory kétfélék:

  • közös zárójelben;
  • csökken.

Összességében kvantor megérintett a minimális és maximális számát engedélyezett ismétlések elem formájában két szám a zárójelek, mint például a X {2,5}. Ha a maximális ismétlések számát nem ismert, a második argumentum nincs megadva: x {2}.

Rövidített kvantifikátorok szimbólumai a legáltalánosabb ismétlések elkerülése érdekében a felesleges túlterhelését szintaxis. Általában van három vágás:

1. * - nulla vagy több ismétlés, amely megfelel a {0,}.

2. + - egy vagy több ismétlések, vagyis, {1} ...

3.? - nulla vagy csak egy ismétlési - {0,1}.

Példák regex

Azok számára, akik megtanulják a reguláris kifejezések, példák - a legjobb tankönyv. Adunk egy pár, hogy megmutassák lehetőségeket a lehető legkisebb erőfeszítéssel. Minden kód teljesen kompatibilis a PHP változat 4.x felett. Ahhoz, hogy megértsük a szintaxisát és használatát minden nyelvi funkciók ajánljuk a könyvet a J .. Friedl „reguláris kifejezések”, amely teljes mértékben figyelembe szintaxist, és vannak példák a reguláris kifejezések nem csak a PHP, hanem a Python, Perl, MySQL, Java, Ruby, és a C #.

Validation E-mail cím

Feladat. Van egy internetes oldal, amelyen a látogató kért címre e-mailt. A reguláris kifejezés ellenőriznie kell a helyességét a címeket, mielőtt üzenetet küldene. Check nem garantálja, hogy a megadott postafiók valóban létezik, és fogadja az üzeneteket. De kiszűréséhez nyilvánvalóan rossz címeket tud.

Határozat. Mint minden programozási nyelv, a PHP regex e-mail cím ellenőrzés lehet különböző módon alkalmazzák, és a cikkben szereplő példák nem a végleges és egyetlen választás. Ezért minden esetben azt kell biztosítani a követelmények listáját, amelyeket meg kell venni, amikor a programozás és konkrét végrehajtási függ, a fejlesztő.

Így ez a kifejezés, hogy a vizsgálatokat egy érvényes email, ellenőriznie kell az alábbi feltételeket:

  1. A jelenléte a kezdő sort a @ szimbólumot, és nincsenek rések.
  2. A tartomány része a címét a @ jel, amely csak érvényes karaktereket domain nevek. Ugyanez vonatkozik a felhasználó neve.
  3. Amikor ellenőrzi a felhasználónév szükséges jelenlétének meghatározására speciális karakterek, mint az aposztróf vagy függőleges vonal. Az ilyen szimbólumok potenciálisan veszélyes, és lehet, amelyet az ilyen típusú támadások, hogy az SQL-injekció. Kerülje címeket.
  4. felhasználónevek, hogy csak egy pontot, ami nem lehet az első vagy utolsó karaktere a húr.
  5. A domain név legalább két és legfeljebb hat karakter.

Példa, figyelembe véve az összes ilyen körülmények között látható a következő ábrán.

Érvényesítése URL

Feladat. Ellenőrizze, hogy a megadott szöveg nem érvényes cím URL-t. Ismét megjegyezzük, hogy a reguláris kifejezések URL-ellenőrzés is megvalósítható különböző módokon.

Határozat. A végleges változat a következő:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

Most vizsgálja annak komponenseit részletesebben a rajz.

Az 1. igénypont Az URL előtt nem kellett volna olyan karakter
2. igénypont szerinti Ellenőrizze a jelenléte a kötelező előtag «http»
3. tétel Nem lehetnek szimbólumok
4. igénypont szerinti Ha «s», az URL egy biztonságos kapcsolatot «https»
követelés 5 Kötelező része a „//”
követelés 6 Nem karakterek
o. 7-9 Ellenőrzése az első szintű domain és jelenléte pont
p.10-13 Ellenőrzése a domain az írás a második szint, és a lényeg
p.14-17

Fájl szerkezetét URL - egy sor számok, betűk, aláhúzás, szaggatott vonalak, pontok és a perjel a végén

Ellenőrizze a hitelkártya-számok

Feladat. Meg kell végre érvényesítése a beírt hitelkártya száma leggyakoribb fizetési rendszerek. A variáns csak kártyák a Visa és a MasterCard.

Határozat. Létrehozásakor a kifejezést kell, hogy vegye figyelembe az esetleges hézagok vannak a bemeneti szobában. A számjegyek a térképen csoportokra osztjuk a könnyebb olvasás és diktálás. Ezért természetes, hogy egy személy próbálja meg egy számot ezen a módon (azaz. E. használata szóköz).

Írj egy univerzális kifejezés, amely figyelembe veszi a lehetséges szóközt és kötőjelet, sokkal bonyolultabb, mint egyszerűen eldobja az összes karakter, kivéve a számjegyek. Ezért javasoljuk egy helyettesítő kifejezést / D, amely eltávolítja az összes karakter, kivéve a számjegyek.

Most akkor közvetlenül az érkezési számot. Minden vállalat, a hitelkártya-kibocsátók egy egyedi szám formátumban. A példában azt használják, és az ügyfél nem kell megadnia a nevét, a cég - ez határozza meg a számot. Visa kártyák mindig úgy kezdődik, a számok a 4. és a hossza 13 vagy 16 számjegyből áll. MasterCard kezdődik a tartományban 51-55 hosszú szám 16. Ennek eredményeképpen megkapjuk a következő kifejezést:

Mielőtt a rendelés feldolgozását tovább lehet tesztelni az utolsó számjegye, amelynek kiszámítása a Luhn algoritmus.

Telefonszám ellenőrzése

Feladat. Ellenőrzi a vállalkozás a megadott telefonszámot.

Határozat. A számjegyek száma a vezetékes és mobil telefonszámok jelentősen különböznek attól függően az országban, így univerzálisan ellenőrizze a reguláris kifejezések, telefonszámát helyesen lehetetlen. De a nemzetközi számok szigorú formai és tökéletes ellenőrzése a mintát. Annál is inkább, hogy egyre több nemzeti telefonszolgáltató próbálunk megfelelni ugyanazt a színvonalat. A szoba felépítése a következő:

+ CCC.NNNNNNNNNNxEEEE, ahol:

- C - az ország kódja, amely 1-3 számjegyből áll.

- N - szám legfeljebb 14 számjegyből áll.

- E - opcionális kiterjesztése.

Plus elengedhetetlen eleme, és a megjelölés X jelen van csak szükség esetén kiterjesztése.

Ennek eredményeként már a következő kifejezést:

^ \ + [0-9] {1,3 } \. [0-9] {4,14} (?: X. +)? $

A számok a tartományban

Feladat. Szükség van annak biztosítására, véletlen egész szám egy bizonyos tartományban. Ezen kívül meg kell találni a reguláris kifejezés csak a számokat a tartományban.

Határozat. Íme néhány kifejezést néhány a leggyakoribb esetekben:

Határozzuk óra 1-24 ^ (1 [0-2] | [1-9]) $
Nap a hónap 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Másodperc vagy perc 0-59 ^ [1-5]? [0-9] $
Számos 1-100 * (100 |? [1-9] [0-9]) $
Az év napja 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Keresés IP-címek

Feladat. Meg kell vizsgálni, hogy egy adott string egy érvényes IP-címet IPv4 formátumban tartományban 000.000.000.000-255.255.255.255.

Határozat. Mint minden probléma a nyelv a PHP, a reguláris kifejezés számos varintov. Például ez:

Online ellenőrzés kifejezések

Ellenőrizze regex rendesen a kezdők is nehéz, mert a bonyolultsága a szintaxist, ami eltér a „hagyományos” programozási nyelvek. Hogy oldja meg ezt a problémát, sok online tesztelők kifejezéseket, amelyek megkönnyítik, hogy ellenőrizze a helyességét a sablont létre a valódi szöveget. A programozó belép a véleménynyilvánítás és a hitelesítési adatokat, és azonnal láthatja az eredményt a feldolgozás. Általában van közölt referencia szakasz, amely részletezi a reguláris kifejezések, példák és végrehajtása különbségek a legkiterjedtebb nyelven.

De ahhoz, hogy teljesen megbízik az online szolgáltatások az eredményeket nem ajánlott minden fejlesztők, akik a PHP. A reguláris kifejezés és ellenőrzött személy felveti képzettsége és garancia hiányában hibákat.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hu.unansea.com. Theme powered by WordPress.