Lik'homphieutha, Mananeo a
PHP (regex) - ke eng? Mehlala le ho hlahloba lipoleloana kamehla
Ha ho sebetsa le mongolo o ka puo efe kapa efe ea kajeno mananeo, ke jwa kamehla kopana le maikemisetso a input netefaletsokaelo bakeng sa latele mohlala lakalitseng, batla le ho nka sebaka sa likhechana teko le mefuta e meng ea sebetsana tshebetso ya tlhahisoleseding botho ba hae. Ntshetsa pele hao dikgatotharabololong netefaletsokaelo ipatlele isang tahlehelo ea nako, le khoutu sebeletsana le ho rarahana ho ntshetsopeleng lona le modernization.
Ntshetsopeleng e potlakileng ea ho Internet le ho web-moralo lipuo hlokahala pōpo ea mokhoa oa tenyetseha le diseke ee ea sebetsa ea mongolo le chelete bonyane hlokehang bakeng khoutu ena. Ho na le mokhelo 'me ke ratoa har'a ba qalang le ke jwa litsebi tsa puo PHP. The kamehla puo polelo e reng e na le dithempleite mongolo ho nolofatsa mosebetsi oa ho sebetsana le taba e ngotsoeng le ho fokotsa khoutu ya mashome le makholo a mela. mathata a mangata a ke ke a rarolloa hang ntle le eona.
Lipolelo kamehla PHP
puo PHP na mekgwa e meraro bakeng sa ho sebetsa ka lipoleloana kamehla - «ereg», «mb_ereg» le «preg». The atileng ka ho fetisisa ke segokanyimmediamentsi sa sebolokigolo «preg», bao mesebetsi fana phihlelo laebraring ea PCRE tšehetso kamehla ho hlahisa maikutlo, qalong ntshetswa pele bakeng sa puo Perl, eo e kenyelelitsoe ka sephutheloana PHP. Preg-batla mesebetsi ka fuoa sengolwa khoele tshwanelelanang, ho ea ka mohlala itseng ka puo ea lipolelo kamehla.
hokahanngoang Basics
E le karolo ea sehlooho e khutšoanyane ke ke ha khoneha ho hlalosa ka ho qaqileng kaofela kamehla ho hlahisa maikutlo hokahanngoang, kaha sena se ho na le lingoliloeng khethehileng. Re hlahisa feela likarolo sehloohong la ho bontša menyetla bakeng developer indonesia le utloisisa mehlala khoutu ya.
Ka PHP poleloana e reng kamehla e molao hlalosoa thata haholo, 'me ka hona nolofatsa tlhaloso ena. A polelo e reng kamehla ke khoele ea mongolo. Ho na le ea inehetseng kgaoganyo thempleite le modifier bontšang tsela ea ho sebetsana le eona. Khoneha kenyelletsoa ka mekhoa e meng e sa tšoaneng le repetitions tsa dipaterone.
Ka mohlala, ka polelo e reng / \ le d {3} - \ le d {2} - \ le d {2} / limithara divider ke "/", lateloa ke thempleite, 'me e le letsoao «limithara» ke modifier.
ea matla 'ohle a bontšang hore kamehla e khouthollotsweng sebelisa Meta-litlhaku. Puo ka sehloohong metacharacter ke backslash - "\". Ho fetola mofuta oa latelang litlhaku ka mabapa le (khr. E. fetoloa la ho dula tlhaku leswaokemedi le sekgoeng). metacharacter 'ngoe ea bohlokoa ke ka kotloloho mola «|», totobatsa le thempleite e meng. mehlala e mengata ya Meta-tlalehong ena:
| ^ | Qala Sepheo kapa khoele |
| ( | qala subpattern |
| ) | End subpattern |
| { | Qala quantifier |
| } | End quantifier |
| \ le d | didijiti tesimale ho tloha 0 ho 9 |
| \ D | tlhaku efe kapa efe eo e seng ea 'maloa |
| \ 's | na letho letshwao, sebaka, tab ya, |
| \ w Le | letshwao szótár |
PHP, sebetsana lipoleloana kamehla, sebaka nkoa e le sa tlhaku ka thoko e sebetsang kateng, ho ba le pontšo ea XYZ le ABC HOKAE tse fapaneng.
subpatterns
Ka PHP subpatterns kamehla ke parentheses, 'me ka linako tse ling se bitsoang "subexpressions". Phethisa mesebetsi e latelang:
Kabo sebelisa mekhoa e meng. Ka mohlala, mocheso paterone (ntho | Bird |) ketekeloang hong le mantsoe "mocheso", "Firebird" le "chesang". A bile a sa ka masakaneng ho e tla feela ba le khoele letho, "nonyana" le "chesang".
"E Hlollang" subpattern. Sena se bolela hore haeba mohlala matched substring, ka nako eo khutlela litlholisano tsohle. Ka ho hlaka, re fana ka mohlala. Fanoeng latelang ho hlahisa maikutlo kamehla: ya mohlodi fumana ((khauta | khauta tlotsitsoe) (khau | senoelo)) - le khoele bakeng sa litlholisano, e leng "mohloli o fumana khau ea khauta." , Ho phaella ho polelo ea pele, liphello e batla tla ntša: "khau Khauta", "likhau", "khauta".
Lisebelisoa repetitions (kvadrifikatory)
Ka go kokoanya dintlhakhutlogo poleloana e reng kamehla hangata ho hlokahala hore ho sekaseka ho pheta-pheta linomoro le matšoao. Sena ha se le bothata, ha e sa le e ngata repetitions. Empa seo a lokelang ho se etsa ha re tsebe palo ea bona hantle? Tabeng ena e ho hlokahala hore ho sebelisa metacharacters khethehileng.
Bakeng sa tlhaloso ea repetitions sebediswa kvadrifikatory - metacharacters ho bolela ka ho toba palo ea. Kvadrifikatory ke tsa mefuta e 'meli:
- tloaelehile ka masakaneng;
- fokotsehile.
Ka kakaretso quantifier angoa ke palo bonyane le palo e kahodimodimo ea lumelloa repetitions elements ka mokgwa wa linomoro tse peli braces, tse kang: x {2.5}. Ha palo palo e kahodimodimo ea repetitions lona ha le tsejoe, khang ea bobeli e sa boletsweng: x, {2}.
Khutsufalitsoe quantifiers ke litšoantšetso bakeng sa tloaelehileng haholo oa repetitions e le ho qoba sa hlokahaleng overloading hokahanngoang. Hangata ho na le fokotsa ho tse tharo:
1. * - lefela kapa ho feta repetitions, e leng lekanang le a ho {0,}.
2. + - repetitions le 'ngoe kapa ho feta, ke hore,, {1} ...
3.? - lefela kapa feela e mong a pheta-pheta - {0.1}.
mehlala regex
Bakeng sa batho ba ithutang lipoleloana kamehla, mehlala - buka ea khomo. Re fana ka tse seng kae tse bontšang menyetla bona ka bonyane ba boiteko. khoutu tsohle ke ka botlalo lumellana le version ya PHP 4.x le ka holimo. Ho utloisisa ka ho feletseng le hokahanngoang le tšebeliso ea litšobotsi puo kaofela re khothalletsa buka ke J .. Friedl, "lipolelo tse kamehla", eo ka botlalo nkoa hokahanngoang, 'me ho na le mehlala ea lipoleloana kamehla ha feela PHP, empa hape bakeng sa Python, Perl, MySQL, Java, Ruby,' me C #.
Netefaletsokaelo Aterese ya imeile
Mosebetsi. Ho na le leqepheng la Internet tseo moeti a kotjwa aterese ya imeile. Kamehla ho hlahisa maikutlo lokela ho hlahloba ho nepahala ea liaterese ea pele ho romela melaetsa. Check ha ho tiise hore ba boletsweng meilbokse ha e le hantle o teng le ea amohelang melaetsa. Empa mofoka ho tsoa liaterese ho hlakile hore e fosahetseng e ka khonang.
Ho etsa qeto. Joalokaha eka ke ka puo efe kapa efe mananeo, ka PHP regex netefatso ya imeile-aterese ka ho sebediswa ho litsela tse sa tšoaneng, 'me mehlala e sehloohong sena hase ho qetela le feela ho etsa khetho. Ka hona, ka e mong le e joalo, re tla fana ka lethathamo la ditlhoko tse lokelang ho elwa hloko ha mananeo le ho kenya tshebetsong e itseng ho itšetlehile ka ho feletseng ka developer indonesia ena.
Kahoo, poleloana e reng hore leka ka imeile e sebetsang, ba lokela ho hlahloba maemo a latelang:
- Ho ba teng ka ho qala mohala @ letshwao, 'me ha ho na le likheo.
- The domain name le karolo ea aterese ya @ letshwao, e na le feela le utloahalang litlhaku tsa mabitso domain name. E tšoanang e sebetsa ho lebitso la mosebedisi le ya.
- Ha ho hlahloba la mosebedisi e ho hlokahala hore ho fumana hore na ho ba teng ha litlhaku e khethehileng tse kang e apostrophe kapa mola paatsepama. matshwaonyana joalo tse kotsi le ka tse mefuta e joalo la litlhaselo hore SQL-ente. Qoba liaterese.
- usernames lumella feela nako e 'ngoe, e leng se ka' na sa e-ba botho ba pele kapa ho qetela ka khoele e.
- Lebitso domain name lokela na le litlhaku tse fetang tse tšeletseng bonyane tse pedi mme ha ho joalo.
Mohlala, e kentse tsohle tsa maemo ana a ka bonoa ka palo tse latelang.
Netefaletsokaelo tsa URL ya
Mosebetsi. Hlahloba hore na boletsweng sengolwa khoele ke a utloahalang aterese URL. Hang hape, re ela hloko hore lipoleloana kamehla URL-oa ho hlahloba ka ho sebediswa ho litsela tse sa tšoaneng.
Ho etsa qeto. tlhahiso rona ea ho qetela ke e latelang:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
Joale sekaseka metsoako e ka ho qaqileng haholoanyane sebedisa taka.
| ditleime 1 | Pele URL ha aa lokela ho ba le batho bao ho buuoang efe kapa efe |
| ditleime 2 | Hlahloba ho ba teng ha le ketapele e tlamang «-http» |
| ntlha ya 3 | Ho na le e lokela ho ba ha ho disymbol |
| ditleime 4 | Haeba ho na le « 's», lintlha URL ho mabapi le tlamahantsoeng «https» |
| ditleime 5 | Hlokahala karolo e itseng ea "//" |
| ditleime 6 | Ha ho batho bao ho buuoang |
| E leq. 7-9 | Verifying le pele boemo ba domain name le ho ba teng ha ntlha |
| p.10-13 | Verifying le domain name ba ngolla boemo bobeli le ntlha |
| p.14-17 | Faele sebopeho URL - sete ya linomoro, mangolo, bontsa, dashes, matheba, 'me e labo ko labo qetellong |
Sheba linomoro karete mokitlane
Mosebetsi. U lokela ho kenya tshebetsong netefaletsokaelo tsa kena karete ya mokitlane nomoro ea tsamaiso ea tefello atileng ka ho fetisisa. A fapaneng feela likarete Visa le MasterCard.
Ho etsa qeto. Ha ho bōpa poleloana e reng u lokela ho ela hloko ho ba teng ha khoneha ya likheo ka kamoreng input. The dinokong 'mapeng li arotsoe ka lihlopha tsa ho bala ho be bonolo le ho piletso. Ka hona, ke ntho ea tlhaho hore motho a ka leka ho kenya nomoro ya ka tsela ena (khr. E. sebelisa libaka).
Ngola polelo e bokahohleng hore o nahanela libaka ho khoneha kapa hyphens, e rarahane ho feta feela ho lahla batho bohle ba ka ntle ho dinokong. Ka lebaka leo, re khothalletsa ho sebelisa leswaokemedi poleloana e reng / D, e leng tlosa litlhaku tsohle ntle dinokong.
Hona joale u ka tsamaea ka kotloloho ho palo cheke. lik'hamphani tsohle, karete mokitlane mopesi ya basekutie sebelisa e ikhethang palo thalong. Ka mohlala e sebelisoa, 'me ea etsetsoang ha ho hlokahale hore a kene ka lebitso la khamphani - e ke ikemiselitse ho ea ka palo. likarete Visa kamehla qala le linomoro 4 'me ba e-ba bolelele ea dinokong 13 kapa 16. MasterCard le qala ka mefuta e fapaneng ya 51-55 le palo e telele 16. Ka lebaka leo, re fumana mantsoe a reng tse latelang:
Pele sebetsana ka taelo ea hore li ka ho eketsehileng lekoa dinokong qetela la ba bangata le, e leng e balwa ka Luhn-tharabololo.
Verifying nomoro ea mohala
Mosebetsi. Hlahloba mokhoa o nepahetseng oa kena nomoro ea mohala.
Ho etsa qeto. palo ea dinokong ka linomoro e tsitsitseng le selefouno mohala Vary haholo ho itšetlehile ka hore naha, kahoo hohle hlahloba sebelisa lipoleloana kamehla, nomoro ea mohala nepo etsahala. Empa linomoro machaba ba le fomate ya ka tieo le e phethahetseng bakeng sa ho hlahloba mohlala. Esita le ho feta le hore ho feta le ho feta ea sechaba lisebelisoa mohala leka ho kopana le tekanyetso e tšoanang. Room Sebopeho e tjena:
+ CCC.NNNNNNNNNNxEEEE, moo:
- C - ke naha khoutu e entsoeng ka dinokong 1-3.
- N - palo ho fihlela ho dinokong 14.
- E - boikhethelo katoloso.
Plus ke elements bohlokoa haholo, 'me pontšo e X se teng feela ha ho hlokahala katoloso.
Ka lebaka leo re na le polelo e reng e latelang:
^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (:?. X, +)? $
linomoro e fapaneng
Mosebetsi. Hoa hlokahala ho netefatsa iketsahalletseng palotlalo tsa e mengata e fapaneng itseng. Ho phaella moo, ho ke ke ho hlokahala hore ho fumana pontšo e kamehla feela linomoro ho tswa ho mefuta e fapaneng.
Ho etsa qeto. Mona ke lipoleloana tse seng kae ho tse ling tsa Maemong a atileng ka ho fetisisa:
| Beha hora ho tloha ho 1 ho tse 24 | ^ (1 [0-2] | [1-9]) $ |
| Letsatsi le leng ka khoeli ea 1-31 | ^ (3 [01] | [12] [0-9] | [1-9]) $ |
| Metsotsoana e kapa metsotso 0-59 | ^ [1-5]? [0-9] $ |
| maloa ho tloha ho 1 ho ea ho 100 | * (100 |? [1-9] [0-9]) $ |
| Letsatsi la selemo 1-366 | ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $ |
Search IP-liaterese
Mosebetsi. Ho ke ke ho hlokahala ho fumana hore na hore na khoele fanoeng ke a utloahalang a IP-aterese ka IPv4 thalong ka mefuta e fapaneng ho tloha 000.000.000.000-255.255.255.255.
Ho etsa qeto. Joalokaha eka ke ka bothata leha e le efe ka puo ea PHP, poleloana e reng kamehla e na le tse ngata varintov. Ka mohlala, sena:
Online oa ho hlahloba lipolelo
Hlahloba regex nepo bakeng sa ba qalang ho ka ba thata ka lebaka la ho rarahana ha hokahanngoang, e leng fapane le "kamehla" lipuo mananeo. Ho rarolla bothata bona, ho na le tse ngata, online testers lipolelo tseo etsa hore ho be bonolo ho hlahloba ho nepahala ha thempleite o bōpiloe ka temana ea sebele. The a thulaganyo kena polelo le netefatso ya data le hang-hang bona ka lebaka la ho sebetsa le. Hangata ho na le hlahisa karolo e bolela, e leng lintlha tse lipolelo kamehla, mehlala le ho se tšoane ho kenngwa tshebetsong bakeng sa lipuo tse ngata le atolositse.
Empa ho ditshebeletso ka botlalo ho tšepa ha online, sephetho sa kgothaletswa bakeng sa ke jwa bohle ba sebelisa PHP. A polelo e reng kamehla e ngotsweng 'me netefalitsoeng ka seqo, hlahisa mangolo le tiisetso ka ho ba sieo ha liphoso.
Similar articles
Trending Now