පරිගණක, වැඩසටහන්
PHP (regex) - ඒ මොකක්ද? උදාහරණ හා පරීක්ෂා සාමාන්ය ප්රකාශනයක
ඕනෑම නවීන පරිගණක භාෂාවෙන් පෙළ සමග වැඩ කරන විට, සංවර්ධකයින් නිරන්තරයෙන්, අපේක්ෂිත රටාව සමඟ අනුකූල වීම සඳහා ආදාන වලංගු අරමුණු හමු ටෙස්ට් කොටස් සහ සැකසීමට චරිතය තොරතුරු මෙහෙයුම් වෙනත් වර්ග සෙවුම් සහ යලි. ඔබේ ම වලංගු ගණිත ක්රමයක් සංවර්ධනය, සංවර්ධනය, නවීකරණය කේතය ගැළපුම හා සංකීර්ණ නැති කාලය කිරීමට යොමු කරයි.
අන්තර්ජාලය වේගවත් සංවර්ධනය හා වෙබ් අඩවි නිර්මාණය කිරීමට භාෂා මෙම කේතය සඳහා අවශ්ය අවම මුදල සමග පෙළ සැකසුම් බහුකාර්ය සහ සංයුක්ත මාර්ගයෙන් නිර්මාණය අවශ්ය විය. එය එසේමය හා ආරම්භක හා PHP භාෂාව වෘත්තීය සංවර්ධනය අතර ජනප්රිය වී ඇත. පෙළ හැසිරවීමේ කටයුත්ත පහසු වූ අතර දස හා මාර්ග සිය ගණනක් සඳහා කේතය අඩු කිරීම සඳහා පෙළ සැකිලි ලෙස ප්රකාශන භාෂාව. බොහෝ ප්රශ්න ඇති නොකර එය කොහෙත්ම විසඳිය නොහැක.
PHP හි සාමාන්ය ප්රකාශිත
« 'Ereg», «mb_ereg» හා «preg» - PHP භාෂාව සාමාන්ය ප්රකාශනයක සමඟ වැඩ කිරීම සඳහා යාන්ත්රණයක් තුනක් ඇත. වඩාත් පොදු කාගේ කාර්යයන් මුලින් php ඇසුරුම තුල ඇතුලත් වන අතර perl බසට භාෂාව, සඳහා දියුණු වූ PCRE ප්රකාශන සහයෝගය පුස්තකාල සඳහා ප්රවේශය සලසා එම අතුරුමුහුණත «preg» වේ. දී ඇති පෙළ වැල ගැළපීමේදී කාර්යයන් Preg-උත්සාහ, සාමාන්ය ප්රකාශනයක භාෂාවෙන් යම් රටාවක් අනුව.
කාරක රීති මූලික කරුණු
කෙටි ලිපියක් කොටසක් ලෙස එය මේ සඳහා විශේෂ සාහිත්ය වන අතර, සවිස්තරව සමස්ත ප්රකාශන කාරක රීති විස්තර කිරීමට නොහැකි ය. අපි සංවර්ධක අවස්ථා පෙන්වා ඇති කේතය උදාහරණ තේරුම් ගැනීමට ඇති ප්රධාන අංග පමණක් ඉදිරිපත්.
PHP හි ප්රකාශන නිල වශයෙන් ඉතා දුෂ්කර අර්ථ දක්වා ඇත, එම නිසා විස්තර සරල. වන විධිමත් ප්රකාශනය පෙළ වැල වේ. එය කැප වෙන්කර සැකිල්ල හා එය පාලනය කිරීම සඳහා මඟ දුරකින් විකරණකාරකය කින් සමන්විත වේ. රටා විවිධ විකල්ප හා නැවත නැවත යෙදී ඇති විය හැකි ඇතුළත්.
උදාහරණයක් ලෙස, අදහස් ප්රකාශ / \ ඈ {3} - \ ඈ {2} - \ ඈ {2} / මීටර් Divider "/", සැකිල්ල අනුගමනය වන අතර, සංකේතය «මීටර්» මෙම විකරණකාරකය වේ.
සාමාන්ය ප්රකාශනයක සියලු බලය පාර-අක්ෂර භාවිතා තුළයි. "\" - ප්රධාන භාෂාව metacharacter මෙම පදයේ අග වේ. එය විරුද්ධ (එනම්. ඊ සාමාන්ය චරිතය ආදේශක සහ අනෙක් අතට බවට පරිවර්තනය) මත චරිත පහත සඳහන් වර්ගය වෙනස් වේ. තවත් වැදගත් metacharacter ඍජු රේඛාවක් ඇත «|», විකල්ප සැකිල්ල දක්වයි. මෙටා-චරිත වලට තවත් උදාහරණ:
| ^ | වස්තුව හෝ වැලක් ආරම්භ |
| ( | subpattern ආරම්භ |
| ) | අවසන් subpattern |
| { | quantifier ආරම්භ |
| } | අවසන් quantifier |
| \ ඈ | 0 සිට 9 දක්වා දශම ඉලක්කම් |
| \ ඩී | අංකයක් නොවේ ඕනෑම චරිතයක් |
| \ ගේ | හිස් සංකේතය වන, අවකාශය, ටැබ්, |
| \ w | සංකේතය ශබ්ද කෝෂය |
PHP, නිත්ය ප්රකාශන සැකසීම, අවකාශය වෙනම වලංගු චරිතය, එසේ වෙනස් කොතැනින්ද XYZ සහ ABC ප්රකාශනය ලෙස සැලකේ.
subpatterns
වරහන්, PHP නිත්ය subpatterns දී, ඔවුන් සමහර විට "subexpressions" ලෙස හැඳින්වේ. පහත සඳහන් කාර්යයන් ඉටු:
වෙන් විකල්ප. උදාහරණයක් ලෙස, තාපය රටාව (යමක් | කුරුළු |) "තාපය", "Firebird" සහ "උණුසුම්" යන වචන සමඟ සම්පාත විය. හා වරහන් තොරව එය එකම හිස් නූල්, "කුරුළු" සහ "උණුසුම්" වනු ඇත.
"වැඩකාරයෝ" subpattern. මෙම රටාව substring ගැලපෙන නම්, සියලු තරග නැවත බවයි. පැහැදිලි බව, අපි උදාහරණයක් දෙන්න. පහත සඳහන් ප්රකාශන ලබා: (| රන් ආලේපිත) (පදක්කම | (රන් කුසලාන)) ජයග්රාහකයා ලැබෙන - සහ තරඟ සඳහා නූල්, "ජයග්රාහකයා රන් පදක්කම ලැබෙනවා." ආරම්භක වැකිය අමතරව, සෙවුම් ප්රතිඵල නිකුත් කරනු ඇත: "රන් පදක්කම", "පදක්කම්", "රන්".
ක්රියාකරුවන් පුනරාවර්තනය (kvadrifikatory)
අක්ෂරය සාමාන්ය සම්පාදනය දී අංක සහ සංකේත නැවත නැවත විග්රහ කිරීමට බොහෝ විට අවශ්ය වේ. මේක ප්රශ්නයක් නොවේ නම්, නැවත නැවත යෙදී ගොඩක් නොවේ. නමුත් අප ඔවුන්ගේ සංඛ්යාව හරියටම දන්නේ නැහැ විට කරන්න? මෙම අවස්ථාවේ දී එය විශේෂ metacharacters භාවිතා කිරීමට අවශ්ය වේ.
සංඛ්යාව නියම කිරීමට metacharacters - kvadrifikatory භාවිතා පුනරාවර්තනය විස්තරයක් සඳහා. Kvadrifikatory වර්ග දෙකක් ඇත:
- වරහන් දක්නට
- අඩු කර ඇත.
අවම එවැනි x {2,5} ලෙස, සඟල වරහන් තුල සංඛ්යා දෙකක් ස්වරූපයෙන් ඉඩ පුනරාවර්තනය අංගයක් උපරිම සංඛ්යාව විසින් ස්පර්ශ සමස්ත quantifier. පුනරාවර්තනය උපරිම සංඛ්යාව නිශ්චිත නැත නම්, දෙවන තර්කය නිශ්චිතව දක්වා නැති වේ: x {2}.
සංක්ෂිප්ත quantifiers අනවශ්ය වැඩියෙන් කාරක රීති වළක්වා ගැනීම සඳහා නැවත නැවත යෙදී වඩාත් පොදු සඳහා සංකේත වේ. සාමාන්යයෙන් කප්පාදු තුනක් ඇත:
1. * - ශුන්ය හෝ ඊට වඩා වැඩි වාර ගණනයි, {0,} සමාන වන.
2. + - එකක් හෝ ඊට වැඩි වාර ගණනයි, එනම්, {1} ...
3.? - ශුන්ය එකක් හෝ නැවත - {0,1}.
උදාහරණ regex
සාමාන්ය ප්රකාශනයක ඉගෙන අයට, උදාහරණ - හොඳම පෙළපොත්. අපි උත්සාහයක් අවම වශයෙන් තම අවස්ථා පෙන්වන කිහිපයක් දෙන්න. සියලු කේතය PHP 4.x හා ඉහත සංස්කරණ වලට අනුකූල වේ. අපි, ජේ .. Friedl විසින් පොත නිර්දේශ කාරක රීති පූර්ණ සලකා "සාමාන්ය ප්රකාශනයක", හා PHP, පමණක් නොව, Python, perl බසට ලං, MYSQL, ජාවා, රූබි, හා C # සඳහා පමණක් නොව සාමාන්ය ප්රකාශනයක උදාහරණ වේ සියලු භාෂා ලක්ෂණ ඇති කාරක රීති සහ භාවිතය සම්පූර්ණයෙන්ම තේරුම් ගැනීමට.
වලංගු කිරීම ඊ-තැපැල් ලිපිනය
කාර්ය සාධක. මත නරඹන්නා ලිපිනය ඊ-තැපැල් ඉල්ලා අන්තර්ජාල පිටුව ඇත. සාමාන්ය ලෙස පණිවිඩ යැවීමට පෙර ලිපිනයන් නිරවද්යතාවය පරීක්ෂා කළ යුතුය. චෙක්පත නිශ්චිත තැපැල් පෙට්ටිය ඇත්තටම පවතී සහ පණිවිඩ ලැබෙන බව සහතික විය නොහැක. නමුත් එය කළ හැකි පැහැදිලිවම වැරදි ලිපින සිදු කල්තියා.
තීරණය. කිසිදු ක්රමලේඛ භාෂාව ලෙස, PHP හි regex විද්යුත්-තැපැල් ලිපිනය තහවුරු කිරීමේ විවිධ ක්රම ක්රියාත්මක කිරීමට හැකිය, සහ මෙම ලිපිය උදාහරණ අවසන් සහ එකම තේරීම නොවේ. ඒ නිසා, එක් එක් අවස්ථාවේ දී, අපි වැඩසටහන් සහ විශේෂිත ක්රියාත්මක කිරීම සංවර්ධක සම්පූර්ණයෙන්ම රඳා පවතී විට සැලකිල්ලට ගත යුතු බව අවශ්යතා ලැයිස්තුවක් ඉදිරිපත් කල යුතු වේ.
මේ අනුව, වලංගු විද්යුත්-පරීක්ෂා කරන ප්රකාශනය, පහත කොන්දේසි පරික්ෂා කර බැලිය යුතුය:
- ආරම්භක දී සිටීම @ සංකේතය පෙල අතර, කිසිම හිඩැස් ඇත.
- @ යන සංකේතය ලිපිනය වසම කොටසක්, වසම් නාම සඳහා වලංගු සංකේත පමණක් අඩංගු වේ. එම පරිශීලක නාමය වලට අදාළ වේ.
- පරිශීලක නාමය පරීක්ෂා කිරීමේදී එවැනි ෙලොප් ලකුණ හෝ සිරස් රේඛාවක් ලෙස විශේෂ අක්ෂර ඉදිරියේ තීරණය කිරීම සඳහා අවශ්ය වේ. එවැනි සංකේත අනතුරුදායක වන අතර SQL-එන්නත් බව ප්රහාර එවැනි වර්ගවල අන්තර්ගත විය හැක. ලිපින වළකින්න.
- පරිශීලක නාම වැල දී පළමු හෝ අවසන් අක්ෂරය විය නොහැකි අතර, එකම එක් අවස්ථාවක ඉඩ ලබා දේ.
- ඩොමේන් නම සයකට වඩා අවම වශයෙන් දෙකක් නොව වඩා අඩංගු විය යුතුය.
උදාහරණයක් ලෙස, මෙම තත්වයන් සියලු රූපය දැක ගත හැකි ය සැලකිල්ලට.
URL එකක් වලංගු
කාර්ය සාධක. දක්වා ඇති පෙළ වැල වලංගු දැයි පරීක්ෂා ලිපිනය URL එක. නැවත වරක්, අප සාමාන්ය ප්රකාශනයක URL එක-පරීක්ෂා කිරීම විවිධ ක්රම ක්රියාත්මක කළ හැකි බව සටහන් කර ගන්න.
තීරණය. අපේ අවසාන අනුවාදය පහත සඳහන් පරිදි වේ:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
දැන් චිත්ර භාවිතා වැඩි විස්තර එහි සංරචක විශ්ලේෂණය කරන්න.
| ප්රකාශය 1 | URL එක ඕනෑම අකුරක් තිබිය යුතු නොවේ පෙර |
| හිමිකම් 2 | අනිවාර්ය උපසර්ගය «http» ඉදිරියේ පරීක්ෂා |
| අයිතමය 3 | කිසිදු සංකේත විය යුතුය |
| හිමිකම් 4 | «ගේ» එහි ආරක්ෂිත සම්බන්ධතාවයක් «https» සදහා URL එක ලකුණු නම් |
| හිමිකම් 5 | ඇති "//" අවශ්ය කොටස |
| හිමිකම් 6 | අකුරු |
| 7-9 පි. | දැනගැනීම පළමු පෙළ වසම් සහ ස්ථානය ඉදිරිපිටදී |
| p.10-13 | දෙවන මට්ටම ලියන වසමේ සහ ස්ථානය ස්ථිර කර |
| p.14-17 | ගොනුව ව්යුහය URL එක - සංඛ්යා සමූහයක්, ලිපි, යටි ඉරි, ඉතුරු, තිත්, සහ අවසානයේ සිඳ බිඳ |
ණය පත් අංක පරීක්ෂා
කාර්ය සාධක. ඔබට වඩාත්ම පොදු ගෙවීම් පද්ධති ඇතුළු ක්රෙඩිට් කාඩ් අංකය වලංගු ක්රියාත්මක කිරීමට අවශ්ය වේ. කාඩ්පත් සඳහා පමණක් ඒ ප්රභේද්යයක් වීසා සහ මාස්ටර්.
තීරණය. ප්රකාශනය නිර්මාණය කිරීමේදී ඔබ ගිණුමට ආදාන කාමරයේ හිඩැස් ඇති විය හැකි ඉදිරියේ ගැනීම අවශ්ය වේ. සිතියම මත ඉලක්කම් පහසු හා කියවීම අණ සඳහා කණ්ඩායම් වෙන් කරනු ලැබේ. ඒ නිසා, එය පුද්ගලයෙකු ලෙස (එනම් අවකාශ භාවිතා කිරීම. ඊ) මේ ආකාරයෙන් ගණනාවක් ඇතුල් වීමට උත්සාහ කළ හැකි ස්වභාවික ය.
සැලකිල්ලට හැකි අවකාශ හෝ හයිපනය ගත වන බව විශ්ව ප්රකාශනය ලියන්න, හුදෙක් ඉලක්කම් හැර අන් සියලු චරිත ඉවතලන්න වඩා සංකීර්ණ වේ. ඒ නිසා, අපි ඉලක්කම් හැර අන් සියලු චරිත ඉවත් කරන ආදේශක ප්රකාශනය / ඩී, භාවිතා කිරීම නිර්දේශ.
දැන් ඔබ චෙක්පත අංකය කෙලින්ම යන්න පුළුවන්. සියලු සමාගම්, ක්රෙඩිට් කාඩ් නිකුත් කරන්නන් ඊටම අනන්ය වූ අංකයක් ආකෘතිය භාවිතා කරන්න. මෙම උදාහරණයේදී එය භාවිතා කර තිබේ නම්, එම සේවාදායකයා සමාගමේ නම ඇතුලත් කිරීම අවශ්ය නොවේ - එය සංඛ්යාව මත තීරණය වේ. වීසා කාඩ්පත් සෑම විටම අංක 4 ආරම්භ හා ඉලක්කම් 13 හෝ 16 ක් දිග ඇති. මාස්ටර් කාඩ් දිගු අංකය 16. සමග 51-55 පරාසයක ආරම්භ එහි ප්රතිඵලයක් ලෙස, අපි පහත සඳහන් ප්රකාශනය ලබා ගන්න:
මෙම ඇණවුම සකස් කිරීමට පෙර Luhn ඇල්ගොරිතම ගණනය කරනු ලබන සංඛ්යාව, අවසන් අංක තවදුරටත් පරීක්ෂා කළ හැක.
ඇත්ත නැත්ත විමසා බලන්නේ දුරකථන අංකය
කාර්ය සාධක. ඇතුල් දුරකථන අංකය නිවැරදි බව පරීක්ෂා කිරීම.
තීරණය. ඉලක්කම් සංඛ්යාව ස්ථාවර සහ ජංගම දුරකථන අංක දුරකථන අංකය නිවැරදිව නොහැකි සැලකිය යුතු රට මත වෙනස් විය, ඒ නිසා එය විශ්වීය සාමාන්ය ප්රකාශනයක භාවිතා පරීක්ෂා කරන්න,. නමුත් ජාත්යන්තර අංක දැඩි ආකෘතිය සහ රටාව පරීක්ෂා කිරීම සඳහා පරිපූර්ණ නැත. ඊටත් වඩා වැඩි වැඩියෙන් ජාතික දුරකථන ක්රියාකරුවන් එම සම්මත හමුවීමට උත්සාහ කරන බව. කාමරය ව්යුහය පහත සඳහන් පරිදි වේ:
+ CCC.NNNNNNNNNNxEEEE, කොහෙද:
- සී - ඉලක්කම් 1-3 කින් යුත් මෙම රටේ කේතය වේ.
- N - අංකය ඉලක්කම් 14 දක්වා ඉහළ.
- E - දිගු.
ප්ලස් අනිවාර්ය අංගයක් වන අතර, දීර්ඝ අවශ්ය විටදී පමණක් ලකුණක් X දක්නට ලැබේ.
එහි ප්රතිඵලයක් ලෙස අපට පහත ප්රකාශනය ඇති:
^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (: X +.) $?
යන පරාසය තුළ සංඛ්යා
කාර්ය සාධක. එය යම් පරාසයක් ලැබෙමින් පූර්ණ සංඛ්යාමය සහතික කිරීම සඳහා අවශ්ය වේ. මීට අමතරව, එය සාමාන්ය ප්රකාශිත පරාසයක සිට අංක පමණක් සොයා බැලිය යුතු වෙනවා.
තීරණය. මෙහි වඩාත් පොදු නඩු සමහර කිරීමට ප්රකාශන කිහිපයක්:
| 1 සිට 24 දක්වා පැය තීරණය | ^ (1 [0-2] | [1-9]) $ |
| මාසය 1-31 දී දින | ^ (3 [01] | [12] [0-9] | [1-9]) $ |
| තත්පර හෝ විනාඩි 0-59 | ^ [1-5] [0-9] $ |
| 1 සිට 100 දක්වා වූ සංඛ්යාව | * (100 |? [1-9] [0-9]) $ |
| වසර 1-366 දිනය | ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $ |
සොයන්න IP-ලිපින
කාර්ය සාධක. එය ලබා දී string 000.000.000.000-255.255.255.255 පරාසෙය් IPv4 හි ආකෘතියෙන් වලංගු IP-ලිපිනය යන්න තීරණය කිරීම සඳහා අවශ්ය වේ.
තීරණය. PHP භාෂාව හෝ කිසිදු ප්රශ්නයක් සමග මෙන් ම, සාමාන්ය ප්රකාශිත බොහෝ varintov ඇත. උදාහරණයක් ලෙස, මෙම:
ප්රකාශන අන්තර්ජාල පරීක්ෂා කිරීම
ආරම්භක සඳහා නිවැරදිව regex පරීක්ෂා නිසා "නිත්ය" ක්රමලේඛන භාෂා වෙනස් වන කාරක රීති, සංකීර්ණත්වය දුෂ්කර විය හැක. මෙම ගැටලුව විසඳීම සඳහා, එය ඔබ සැබෑ පෙළ නිර්මාණය වන සැකිලි වල නිරවද්යතාවය පරීක්ෂා කිරීමට පහසු බව බොහෝ සමඟ අමුත්තන් පරීක්ෂකයින් ප්රකාශන වේ. ගැලීම් සටහන් ප්රකාශනය හා තහවුරු දත්ත ඇතුල් ක්ෂණිකව සැකසුම් ප්රතිඵලයක් බලන්න. සාමාන්යයෙන් සාමාන්ය ප්රකාශනයක, උදාහරණ සහ වඩාත් දීර්ඝ භාෂා සඳහා ක්රියාත්මක වෙනස්කම් විස්තර කරන වර්තමාන වූ ග්රන්ත, නැත.
නමුත් සම්පූර්ණයෙන්ම විශ්වාසය මාර්ගගත සේවාවන් ප්රතිඵල PHP භාවිතා කරන සියලු සංවර්ධකයින් සඳහා නිර්දේශ නැත. වන විධිමත් ප්රකාශනය ලියා හා පුද්ගලයෙකු තුළ තහවුරු, සුදුසුකම් මතු හා දෝෂ නොමැති සහතික.
Similar articles
Trending Now