Számítógépek, Programozá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:
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ó”.
„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:
- A jelenléte a kezdő sort a @ szimbólumot, és nincsenek rések.
- A tartomány része a címét a @ jel, amely csak érvényes karaktereket domain nevek. Ugyanez vonatkozik a felhasználó neve.
- 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.
- felhasználónevek, hogy csak egy pontot, ami nem lehet az első vagy utolsó karaktere a húr.
- 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