Komepiuta, Polokalame
PHP (regex) - o le a lena? Faataitaiga ma le siakiina o faaupuga masani
Pe a galulue i mau i so o se gagana o aso nei polokalame, ia feiloai pea developers ma sini o le faamaoniga sao mo le tausisia o le mamanu manao, suesue ma suia suega fragments ma isi ituaiga o ona iloilo gaoioiga o faamatalaga amio. Atiina ae taitai atu ai outou lava algorithms faamaoniga e leiloa o le taimi, o le code ogatasi ma le lavelave i lona atinae ma modernization.
O le televave o atinae, o le Initoneti ma gagana Uepi-mamanu e manaomia le faia o auala vavai ma le puupuu o le mau gaosi i se aofaiga aupito i maualalo e manaomia mo lenei code. E le o se ese ma ua lauiloa i amataina ma developers tomai faapitoa o le gagana PHP. O le gagana faaupuga masani e pei o le templates mau e faafaigofie le galuega o le taulimaina o le mau ma le faaitiitia code mo le faitau sefulu ma le faitau selau o laina. Le tele o faafitauli e le mafai ona foia i uma e aunoa ma le i ai.
Faaalia e le aunoa i PHP
ei ai auala e tolu gagana PHP mo le galulue faatasi ma faaupuga masani - «ereg», «mb_ereg» ma «preg». E sili ona taatele o le Ofisa o «preg», o lona galuega tauave tuuina atu le avanoa i le faletusi o le lagolago PCRE faaupuga masani, uluai atiina ae mo le gagana Perl, lea o loo aofia ai i le pusa PHP. Preg sailia le galuega tauave i se faafetaui manoa mau tuuina mai, e tusa ma se mamanu patino i le gagana o le faaupuga e masani ai.
syntax Faavae
O se vaega o se tusiga puupuu e mafai ona faamatalaina auiliili atoa syntax faaupuga masani, mo lenei o loo i ai se tusi faapitoa. Tatou te tuuina atu na o le elemene autu e faaali avanoa mo atinae ma malamalama i le code faataitaiga.
I le ua aloaia faamatalaina faigata tele PHP faaupuga masani, ma o lea faafaigofie le faamatalaga. O se faaupuga masani o se manoa anotusi. E aofia ai o se mamanu tuueseeseina ai le tuuto ma le fesuiai ai e faailoa ai le ala e taulima ai. aofia ai e mafai ai i le filifiliga eseese ma repetitions o mamanu.
Mo se faataitaiga, i le faaupuga / \ d {3} - \ d {2} - \ d {2} / m faasoasoataumafa o le "/", sosoo ai ma le mamanu, ma o le faatusa «m» o le fesuiai.
ua encoded uma le mana o le faaupuga masani e faaaoga meta-tagata. O le metacharacter gagana autu o le backslash - "\". E suia ai le ituaiga o nei tagata i luga o le faafeagai (ie. E. Liua i se wildcard uiga masani ma le isi foi itu). O le isi metacharacter taua o le a saʻo le laina «|», faamaoti mai e le mamanu isi. Le tele o faataitaiga o meta-tagata:
| * | Amata mea faitino po o se manoa |
| ( | amata subpattern |
| ) | iuga subpattern |
| { | Amata quantifier |
| } | iuga quantifier |
| \ d | digit decimal mai 0 i le 9 |
| \ D | so o se tagata e le o se numera |
| \ s | faailoga avanoa, avanoa, tab, |
| \ w | lomifefiloi faailoga |
PHP, gaosia faaupuga masani, avanoa manatu e avea o se uiga aoga eseese, o lea o le faaupuga o XYZ ma ABC FEA E eseese.
subpatterns
I PHP subpatterns e puipui masani, ma o nisi taimi e taʻua i latou o "subexpressions". Faatino galuega tauave nei:
filifiliga Faasoasoaina. Mo se faataitaiga, o le mamanu vevela (se mea | Bird |) coincides i upu "vevela", "Firebird" ma le "vevela". Ma e aunoa ma le puipui o le a na o se manoa avanoa, "manu" ma le "vevela".
"Mataʻina" subpattern. o lona uiga o lenei pe afai o le mamanu fetaui substring, toe foi lea afitusi uma. Mo le manino, tatou te tuuina atu se faataitaiga. Ona o le faaupuga masani nei: mauaina le manumalo ((auro | plated auro) (pine | ipu)) - ma le manoa mo afitusi, "maua le manumalo i se pine auro." I le faaopoopo atu i le fuaitau muamua, o le a tuuina atu ai le taunuuga suesuega: "Pine Auro", "pine", "auro".
E faagaoioia repetitions (kvadrifikatory)
I le tuufaatasia o le faaupuga masani e masani lava ona manaomia e iloilo le toe faia o numera ma faatusa. e le o se faafitauli lenei, pe afai e le tele o repetitions. Ae o le mea e fai pe a tatou le iloa lo latou aofai tonu? I totonu o lenei tulaga e talafeagai e faaaoga metacharacters faapitoa.
Mo se faamatalaga o repetitions faaaogaina kvadrifikatory - metacharacters e faamaoti le numera. e Kvadrifikatory o ituaiga e lua:
- taatele i le puipui;
- faaitiitia.
Aotelega quantifier ootia i le aofai aupito i maualalo ma le maualuga o elemene repetitions faatagaina i le pepa faatumu o numera e lua i le braces, e pei o x {2,5}. Afai o le aofaiga aupito maualuga o repetitions e le o iloa, e le o faamaoti mai le finauga lona lua: x {2}.
o faailoga quantifiers faapuupuu mo le o repetitions taatele ina ia aloese mai le soona syntax manaomia. E masani lava o loo lavea e tolu:
1. * - o po o le sili repetitions, lea e tutusa ma {0,}.
2. + - o se tasi po o le sili repetitions, o lona uiga, {1} ...
3.? - o pe na toe fai se tasi - {0,1}.
faataitaiga regex
Mo i latou oe na aoaoina le faaupuga masani, faataitaiga - o le tusi aoga sili ona lelei. Tatou te tuuina atu ni nai e faaalia ai o latou avanoa ma le tapulaa maualalo o le taumafaiga. Uma code o atoatoa talafeagai ma lomiga o PHP 4.x ma luga. Ina ia malamalama atoatoa i le syntax ma le faaaogaina o le gagana vala uma tatou pepa faataga o le tusi e J .. Friedl, "faaupuga masani", lea e atoatoa manatu syntax, ma o loo i ai e le gata i faataitaiga o faaupuga masani PHP, ae faapea foi mo se Python, Perl, MySQL, Java, Ruby, ma C #.
Aloaia E-meli tuatusi
Galuega. E i ai se itulau Initoneti lea imeli tuatusi ua talosagaina le tagata asiasi. e tatau ona siaki faaupuga masani i le sao o le lauga ao lei auina atu savali. e le mautinoa Siaki e faapea o le pusameli faamaoti moni lava o loo i ai ma maua savali. Ae vele mai manino sese tuatusi e mafaia.
Faaiuga. A o ma so o se gagana polokalame, i PHP mafai ona faatinoina i faamaoniga lauga-imeli regex i auala eseese, ma le faataitaiga o le i lenei mataupu o le filifiliga mulimuli ma na o le. O le mea lea, i mataupu taitasi, o le a tatou tuuina atu se lisi o tulaga manaomia e tatau ona amanaia pe polokalame ma faalagolago faatinoga patino atoa i luga o le atinae.
O lea la, o le faaupuga ia e tofotofoina ai se imeli aloaia, e tatau ona siaki le tulaga nei:
- O le i ai i le amataga laina le @ faatusa, ma e leai ni avanoa.
- O le vaega DOMAIN o le tuatusi o le @ faatusa, o loo i ai na o le tagata aoga mo igoa silafia e. Le lava lea e tasi e faatatau i le igoa o le tagata e faaaogāina.
- Afai e talafeagai le siakiina o le username e fuafua ai le afioaga o le tagata faapitoa e pei o se koma liliu po o laina i luga. O faatusa e ono matautia ma e mafai ona aofia ai i totonu o sea ituaiga o osofaiga e SQL-tui. Aloese mai le lauga.
- usernames faatagaina na manatu e tasi, e mafai ona le uiga muamua po o le mulimuli i le manoa.
- E tatau i le igoa o loo silafia e le itiiti ifo i le lua ma le sili atu nai lo tagata e ono.
Faataitaiga, i le amanaia ai e mafai ona vaai i ai o nei tulaga uma i le fuainumera nei.
Aloaia o se URL
Galuega. Siaki pe o le manoa mau faamaoti o se aoga URL tuatusi. Le taimi lava e toe, tatou te maitauina o faaupuga masani URL-siakiina e mafai ona faatinoina i ni auala eseese.
Faaiuga. Tatou lomiga mulimuli e faapea:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-]) * \ /? $ /
O lenei iloilo le vaega i auiliili i le faaaogaina o ata.
| talosaga 1 | I luma o le URL le tatau ona i ai so o se tagata |
| tagi 2 | Siaki i le afioaga o le pito i luma faamalosia «http» |
| aitema 3 | E tatau ona i ai se faailoga |
| tagi 4 | Afai ei ai «s», o le URL manatu i se sootaga faamaonia «https» |
| tagi 5 | Manaomia vaega o le "//" |
| tagi 6 | E leai se tagata |
| p. 7-9 | E faamaonia ai le silafia e muamua tulaga ma le afioaga o le tulaga |
| p.10-13 | E faamaonia ai le silafia e le tusi le tulaga lua ma le tulaga |
| p.14-17 | URL fausaga faila - o se seti o numera, tusi, faamamafaina ai, nutililii, togi, ma a slash i le faaiuga |
Siaki le numera o pepa aitalafu
Galuega. E manaomia ona e faatinoina le faamaoniga o le aofaiga pepa aitalafu ulu o le faiga totogiina taatele. A variant mo na o kata visa ma MasterCard.
Faaiuga. A le faia o le faaupuga e tatau ona amanaia le afioaga mafai o eseesega i le potu sao. O le digits i luga o le faafanua o loo vaevaeina i ni vaega mo le faitau ma le faatonuga faigofie. O lea, e moni e faapea o se tagata e mafai ona taumafai e ulu atu i se numera i lenei auala (ie. E. O le faaaogaina o avanoa).
Tusi se faailoga taatele o le silasila i le mafai avanoa po o hyphens, e sili atu ona faigata nai lo le lafoaia tagata uma vagana digits. O le mea lea, tatou pepa faataga o le faaaogaina o se wildcard faaupuga / D, lea e aveesea ai tagata uma vagana digits.
O lenei e mafai ona e alu saʻo lava i le numera siaki. Uma kamupani, tagata e tuuina atu pepa aitalafu faaaoga se faatulagaga numera tulaga ese. I le faataitaiga o loo faaaogaina, ma e le manaomia le kalani e ulu atu i le igoa o le kamupani - ua fuafuaina e le numera. amata i taimi uma ni pepa visa i le numera 4 ma maua se umi o le 13 po o le 16 digits. MasterCard amata i le tele o 51-55 ma a umi le numera 16. O le taunuuga, tatou te maua ai le faaupuga lenei:
I luma o ona iloilo le poloaiga e mafai ona toe tofotofoina le digits mulimuli o le fuainumera, lea ua fuafuaina i luga o le algorithm Luhn.
E faamaonia ai numera o le telefoni
Galuega. Siakiina o le sao atoatoa o le numera o le telefoni ulu.
Faaiuga. O le aofai o digits i le faatulagaina ma feaveai numera o telefoni eseese tele e faalagolago i luga o le atunuu, o lea le lalolagi atoa siaki le faaaogaina o faaupuga masani, numera o le telefoni saʻo mafai. Ae numera faava o malo ua i ai se faatulagaga atoatoa ma le atoatoa mo le siakiina i le mamanu. E sili atu ina ia sili atu ma sili atu e faagaoioia telefoni o le atunuu o loo taumafai e ausia le tulaga lava e tasi. o fausaga potu e faapea:
+ CCC.NNNNNNNNNNxEEEE, pe afai:
- C - o le atunuu code aofia ai 1-3 digits.
- N - numera e oo atu i 14 digits.
- E - tuu i le faitalia faaopoopoga.
o Plus se elemene taua naua, ma le faailoga X o le taimi nei pe a faaopoopoga manaomia.
O se taunuuga i tatou le faaupuga nei:
^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (:?. X +)? $
O le numera i le tele
Galuega. E tatau ona mautinoa faafuasei integer o se ituaiga faapitoa. I le faaopoopo, e tatau ona maua se faaupuga masani e na o le numera mai le tele.
Faaiuga. O nisi nei o faamatalaga i nisi o mataupu sili ona taatele:
| Fuafua itula mai le 1 i le 24 | * (1 [0-2] | [1-9]) $ |
| Aso i le masina 1-31 | * (3 [01] | [12] [0-9] | [1-9]) $ |
| Sekone po o minute 0-59 | ^ [1-5]? [0-9] $ |
| O se numera mai le 1 e 100 | * (100 | [1-9] [0-9]) $ |
| Aso o le tausaga 1-366 | * (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} | [1-9] [0-9]) $ |
Search IP-tuatusi
Galuega. E tatau ona iloa ai pe a tuuina mai manoa o se aoga IP-tuatusi i faatulagaga IPv4 i le tele mai 000.000.000.000-255.255.255.255.
Faaiuga. A o ma so o se faafitauli i le gagana a PHP, ei varintov le tele o le faaupuga e masani ai. Mo se faataitaiga, o lenei:
siakiina o le initoneti o le faaalia
Siaki regex saʻo mo e amataina e mafai ona faigata ona o le lavelave o le syntax, lea e ese mai le "masani" gagana polokalame. Ina ia foia lenei faafitauli, e tele testers initoneti faaupuga faia faigofie e siaki ai le sao atoatoa o le mamanu e foafoaina i le anotusi moni. O le Faapolokalameina ulufale le faamatalaga faaupuga ma faamaoniga ma vaai i le taimi lava lena le taunuuga o le gaosiga. E masani lava ona i ai o tuuina atu se vaega faasinomaga, lea auiliiliga le faaupuga masani, faataitaiga ma eseesega o le faatinoga mo le gagana e sili ona lautele.
Ae ina ia atoatoa faalagolago auaunaga luga o le initoneti le fautuaina taunuuga mo developers uma oe faaaogaina PHP. ua tusia se faaupuga masani ma faamaonia i tagata, tulaʻi agavaa ma mautinoa ai le leai o ni mea sese.
Similar articles
Trending Now