ኮምፒውተሮች, ፕሮግራም
ፒኤችፒ (regex) - ይህ ምንድን ነው? ምሳሌዎች እና በመፈተሽ መደበኛ መግለጫዎች
ማንኛውም ዘመናዊ ፕሮግራም ቋንቋ ጽሑፍ ጋር መሥራት ጊዜ, ገንቢዎች ዘወትር የተፈለገውን ጥለት ጋር በሚጣጣም ለ ግብዓት ማረጋገጥ ዓላማዎች ጋር ለመገናኘት መፈለግ እና ፈተና ቁርጥራጮች እና ቁምፊ መረጃ በማስኬድ ስራዎች ሌሎች አይነቶች ይተካል. ጊዜ ማጣት, በውስጡ ልማትና ዘመናዊ ውስጥ ያለውን ኮድ ተኳኋኝነት እና ውስብስብነት ይመራል የራስዎን ማረጋገጫ ስልተ አዳብር.
በኢንተርኔት እና ድር-ንድፍ ቋንቋዎች ፈጣን ልማት ይህን ኮድ ያስፈልጋል ቢያንስ መጠን ጋር ጽሑፍ ሂደት ሁለገብ እና የታመቁ ዘዴ መፍጠር ያስፈልጋል. ምንም የተለየ ነው ለጀማሪዎች እና ፒኤችፒ ቋንቋ ባለሙያ ገንቢዎች ዘንድ ታዋቂ ነው. ጽሑፉ አብነቶች እንደ መደበኛ አገላለጽ ቋንቋ ጽሑፍ አያያዝ ለማቃለል እና በአስር እና መስመሮች በመቶዎች ኮድ ለመቀነስ. በብዙ ችግሮች ላይ ሁሉ ያለ ሊፈታ አይችልም.
ፒኤችፒ ውስጥ መደበኛ መግለጫዎች
«Ereg», «mb_ereg» እና «preg» - ፒኤችፒ ቋንቋ መደበኛ መግለጫዎች ጋር መስራት የሚሆን ሦስት ስልቶችን አሉት. በጣም የተለመደው በይነገጽ «preg», የማን ተግባራት በመጀመሪያ ፒኤችፒ ጥቅል ውስጥ የተካተተ ነው ይህም ፐርል ቋንቋ የተዘጋጀ የ PCRE መደበኛ አገላለጽ ድጋፍ, ስለ ቤተ-መጽሐፍት መዳረሻ ማቅረብ ነው. መደበኛ መግለጫዎች ቋንቋ የተወሰነ ንድፍ መሠረት, አንድ የተሰጠ የጽሑፍ ሕብረቁምፊ ማዛመድ ውስጥ ተግባራት Preg-በመፈለግ.
አገባብ መሠረታውያን
አንድ አጭር ጽሑፍ ክፍል እንደ አንድ ልዩ ሥነ ጽሑፍ የለም ይህ, መላው መደበኛ አገላለጽ አገባብ በዝርዝር ለመግለጽ የማይቻል ነው. እኛ ገንቢ ለ አጋጣሚዎች ለማሳየት እና ኮድ ምሳሌዎች መረዳት ብቻ ዋና ዋና ንጥረ ነገሮች ማቅረብ.
ፒኤችፒ ውስጥ መደበኛ አገላለጽ መደበኛ በጣም አስቸጋሪ ፍቺ, ስለዚህ መግለጫ ለማቅለል ነው. አንድ መደበኛ አገላለጽ የጽሑፍ ሕብረቁምፊ ነው. ይህ አንድ ራሱን የወሰነ SEPARATOR አብነት እና መፍታት መንገድ የሚጠቁመውን መቀየሪያ ያካትታል. ቅጦች የተለያዩ አማራጮች እና አትድገሙ ውስጥ መኖር ይቻላል እንዲካተቱ.
ለምሳሌ ያህል, መግለጫ ውስጥ / \ መ {3} - \ መ {2} - \ መ {2} / ሜትር መከፋፈያ አብነቱን ተከትሎ, "/" ነው, እና ምልክት «ሜትር» ያለውን መቀየሪያ ነው.
መደበኛ መግለጫዎች በሙሉ ኃይል ሜታ-ቁምፊዎችን በመጠቀም ኮድ ነው. "\" - ዋናው ቋንቋ metacharacter ወደ ህዝባር ነው. ይህ ተቃራኒ ላይ ቁምፊዎች የሚከተሉት ዓይነት ለውጦች (ማለትም. ሠ አንድ ተራ ቁምፊ ልዩ ምልክት እና በግልባጩ ወደ ተለውጧል). «|», ወደ አማራጭ አብነት ይገልጻል ሌላው አስፈላጊ metacharacter በቀጥታ መስመር ነው. ሜታ-ቁምፊዎች ተጨማሪ ምሳሌዎች:
| ^ | ነገር ወይም ሕብረቁምፊ ይጀምሩ |
| ( | subpattern ጀምር |
| ) | ጨርስ subpattern |
| { | ጀምር quantifier |
| } | ጨርስ quantifier |
| \ d | 0 እስከ 9 አስርዮሽ አሃዝ |
| \ ዲ | ቁጥር አይደለም ማንኛውም ቁምፊ |
| \ s | ባዶ ምልክት, ቦታ, ትር, |
| \ ወ | ምልክት መዝገበ |
ፒኤችፒ, መደበኛ መግለጫዎች, የተለየ የሚያገለግል ቁምፊ እንደ ተደርጎ ቦታ, በጣም የተለዩ ናቸው የት xyz እና ኤቢሲ ያለውን አገላለጽ ፕሮሰስ.
subpatterns
በቅንፍ በ ፒኤችፒ መደበኛ subpatterns ውስጥ, እና አንዳንድ ጊዜ «subexpressions» ይባላሉ. የሚከተሉትን ተግባራት ያከናውኑ:
ምደባ አማራጮች. ለምሳሌ ያህል, የ ሙቀት ጥለት (ነገር | ወፍ |) "Firebird" እና "ሞቃት" ቃላት "ሙቀት" ጋር የሚገጣጠመው. እና ቅንፍ ያለ ብቻ ባዶ ሕብረቁምፊ, "ወፍ" እና "ትኩስ» ይሆናል.
"አስደናቂ" subpattern. ይህ ንድፍ ሕብረቁምፊ የተስማማ; እንግዲያስ ሁሉ ተዛማጆች ይመልሳል ማለት ነው. ስለማቋረጥ ያህል, እኛ አንድ ምሳሌ መስጠት. የሚከተሉት መደበኛ አገላለጽ የተሰጠ: - እና መመሳሰሎች ለ ሕብረቁምፊ "አሸናፊ አንድ የወርቅ ሜዳሊያ ያገኛል." አሸናፊ ይቀበላል (ጽዋ) (ወርቅ | | የወርቅ ሜዳሊያ () ለበጠው) የመጀመሪያ ሐረግ በተጨማሪ, የፍለጋ ውጤቶችን የሚሰጥ ይሆናል: «የወርቅ ሜዳሊያ", "ሜዳሊያ", "ወርቅ".
ኦፕሬተሮች አትድገሙ (kvadrifikatory)
መደበኛ አገላለጽ በሚዘግቡበት ወቅት ቁጥሮች እና ምልክቶች መደጋገሙ ለመተንተን ብዙውን ጊዜ አስፈላጊ ነው. ይህ ችግር ከሆነ አይደለም አትድገሙ ብዙ አይደለም. እኛ ትክክለኛ ቁጥር አያውቁም ጊዜ ግን ምን ማድረግ? በዚህ ሁኔታ ውስጥ ልዩ metacharacters መጠቀም አስፈላጊ ነው.
ቁጥር መግለፅ metacharacters - kvadrifikatory ጥቅም አትድገሙ ማብራሪያ ለማግኘት. Kvadrifikatory ሁለት ዓይነቶች ናቸው:
- በቅንፍ ውስጥ የጋራ;
- ቀንሷል.
እንዲህ x {2,5} እንደ ቅንፎች ውስጥ ሁለት ቁጥሮች, መልክ የተፈቀደላቸው አትድገሙ ኤለመንት ዝቅተኛ እና ከፍተኛ ቁጥር የተነካ አጠቃላይ quantifier. አትድገሙ ከፍተኛውን ቁጥር አይታወቅም ከሆነ, ሁለተኛው ክርክር አልተገለጸም ነው: x {2}.
አጠር quantifiers አላስፈላጊ overloading አገባብ ለማስወገድ ሲሉ አትድገሙ በጣም የተለመዱ ለ ምልክቶች ናቸው. አብዛኛውን ጊዜ ሦስት ቅነሳ አሉ:
1. * - {0,} ጋር እኩል ነው ዜሮ ወይም ተጨማሪ አትድገሙ.
2.; + - አንድ ወይም ከዚያ በላይ አትድገሙ, ማለትም: {1} ...
3.? - ከዜሮ ወይም አንድ ብቻ ተደጋጋሚ - {0,1}.
ምሳሌዎች regex
ምርጥ መማሪያ - መደበኛ መግለጫዎች, ምሳሌ መማር ለእነዚያ. እኛ ጥረት ቢያንስ ጋር ያላቸውን እድል የሚያሳዩ ጥቂት መስጠት. ሁሉም ኮድ ከላይ ፒኤችፒ 4.x እና ስሪቶች ጋር ሙሉ በሙሉ ተኳሃኝ ነው. ሙሉ ሙሉ በሙሉ አገባብ ተደርገው ይህም ጄ .. Friedl, "መደበኛ መግለጫዎች" በ መጽሐፍ ይመክራሉ ሁሉ ቋንቋ ባህሪያት መካከል ያለውን አገባብ እና አጠቃቀም መረዳት እና ብቻ አይደለም ፒኤችፒ: ነገር ግን ደግሞ አንድ ፓይዘን, ፐርል, MySQL, ጃቫ, ሩቢ, እና ሐ ለ # መደበኛ መግለጫዎች ምሳሌዎች አሉ ዘንድ.
ማረጋገጥ ኢ-ሜይል አድራሻ
ተግባር. ጎብኚው አድራሻ ኢሜይል የተጠየቀው ነው ላይ የበይነመረብ ገጽ የለም. መደበኛ አገላለጽ መልዕክቶችን በመላክ በፊት አድራሻዎች መካከል ትክክለኛነት ማረጋገጥ አለብን. ቼክ የተገለጸው የመልእክት በትክክል መኖሩን እና መልዕክቶችን ይቀበላል መሆኑን አያረጋግጥም. ነገር ግን ይችላል ግልጽ የተሳሳተ አድራሻ ያደርዲታል.
ውሳኔ. በማንኛውም የፕሮግራም ቋንቋ ጋር እንደ ፒኤችፒ ውስጥ regex ኢሜይል-አድራሻ ማረጋገጫ በተለያዩ መንገዶች ተግባራዊ ሲሆን በዚህ ርዕስ ውስጥ ምሳሌዎች የመጨረሻውን እና ምርጫ ብቻ አይደሉም ይቻላል. ስለዚህ, በእያንዳንዱ ጉዳይ ላይ, እኛ ፕሮግራም እና የተወሰኑ ትግበራ በገንቢው ላይ ሙሉ በሙሉ የተመካው ጊዜ ግምት ውስጥ መግባት አለባቸው ዘንድ መስፈርቶች ዝርዝር ማቅረብ አለበት.
በመሆኑም ትክክለኛ ኢሜይል ይፈትናል የሚል አገላለጽ, የሚከተሉትን ሁኔታዎች መፈተሽ አለባቸው:
- መነሻ ውስጥ መገኘት የ @ ምልክት መስመር, እና ምንም ክፍተቶች የሉም.
- የ @ ምልክት አድራሻ ጎራ ክፍል, የጎራ ስሞች ብቻ ትክክለኛ ቁምፊዎች ይዟል. ተመሳሳይ የተጠቃሚውን ስም ይመለከታል.
- የተጠቃሚ ስም በመፈተሽ ጊዜ እንደ በአፓስትሮፍ ወይም ቋሚ መስመር እንደ ልዩ ቁምፊዎች ፊት ለማወቅ አስፈላጊ ነው. እንዲህ ያሉ ምልክቶች አደገኛ ናቸው SQL-መርፌ መሆኑን ጥቃቶችን እንደዚህ ዓይነት ውስጥ የተካተቱ ሊሆን ይችላል. አድራሻዎችን ያስወግዱ.
- የተጠቃሚ ሕብረቁምፊ ውስጥ የመጀመሪያ ወይም የመጨረሻ ቁምፊ ላይሆን ይችላል ይህም ብቻ አንድ ነጥብ እንፈቅዳለን.
- የጎራ ስም ቢያንስ ሁለት ሳይሆን ከ ከስድስት ቁምፊዎች መያዝ አለበት.
ለምሳሌ, መለያዎ ውስጥ እነዚህ ሁኔታዎች በሙሉ በመውሰድ በሚከተለው ምስል ላይ ሊታይ ይችላል.
አንድ ዩአርኤል ማረጋገጥ
ተግባር. የተጠቀሰውን ጽሑፍ ሕብረቁምፊ ትክክለኛ አለመሆኑን ያረጋግጡ አድራሻ ዩ አር ኤል. አንድ ጊዜ እንደገና, እኛም በየጊዜው መግለጫዎችን ዩአርኤል-ምልከታ በተለያዩ መንገዶች ተግባራዊ ሊሆን እንደሚችል ልብ ይበሉ.
ውሳኔ. እንደሚከተለው የእኛ የመጨረሻው ስሪት ነው:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
አሁን ስዕል በመጠቀም ተጨማሪ በዝርዝር ክፍሎቹ ለመተንተን.
| የይገባኛል ጥያቄ 1 | ዩ አር ኤል ማንኛውም ቁምፊዎች ሊኖረው አይገባም በፊት |
| የይገባኛል ጥያቄ 2 | ግዴታ የሆነው ቅጥያ ፊት ይፈትሹ «http» |
| ንጥል 3 | ምንም ምልክቶች መኖር አለበት |
| የይገባኛል ጥያቄ 4 | ከሆነ በዚያ «ዎች», ደህንነቱ የተጠበቀ ግንኙነት ወደ ኤል ነጥቦች «https» |
| የይገባኛል ጥያቄ 5 | የሚጠበቀው ክፍል "//" |
| የይገባኛል 6 | ምንም ቁምፊዎች |
| p. 7-9 | የ በማረጋገጥ የመጀመሪያ ደረጃ ጎራ እና ነጥብ ፊት |
| p.10-13 | ሁለተኛ ደረጃ እና ነጥብ በመጻፍ ጎራ በማጣራት ላይ |
| p.14-17 |
የፋይል አወቃቀር ዩአርኤል - ቁጥሮችን, ፊደሎችን, የሥር, ዳሽ, ነጥቦችን ስብስብ, እና መጨረሻ ላይ አንድ ሠረዝ |
የክሬዲት ካርድ ቁጥሮች ይመልከቱ
ተግባር. አንተ በጣም የተለመደ የክፍያ ስርዓት ወደ የገባው የብድር ካርድ ቁጥር ማረጋገጥ ለመተግበር ያስፈልገናል. ብቻ ካርዶች የሚሆን ተለዋጭ ቪዛ እና MasterCard.
ውሳኔ. አገላለጽ ሲፈጥሩ እርስዎ የግቤት ክፍል ውስጥ መለያ ወደ ክፍተት መካከል በተቻለ መገኘት መውሰድ ይኖርብናል. በካርታው ላይ ያለው አሃዞች ቀላል ንባብ እና ነገራ ቡድኖች ይከፈላሉ. ስለዚህ, ይህ ሰው (ማለትም. ሠ ቦታዎች መጠቀም) በዚህ መንገድ ቁጥር ለመግባት መሞከር ይችላሉ ተፈጥሯዊ ነው.
መለያ ወደ በተቻለ ክፍተቶች ወይም ሰረዞች የሚወስድ መሆኑን ሁለንተናዊ አገላለጽ ጻፍ; በቀላሉ አሃዞች በስተቀር በሁሉም ቁምፊዎች መጣል የበለጠ የተወሳሰበ ነው. ስለዚህ እኛ አሃዞች በስተቀር በሁሉም ቁምፊዎች ያስወግደዋል ተከታታይነት መግለጫ / D, እንዲጠቀሙ እንመክራለን.
አሁን ቼክ ቁጥር በቀጥታ መሄድ ይችላሉ. ሁሉም ኩባንያዎች, ክሬዲት ካርድ ሃታም ልዩ ቁጥር ቅርጸት ይጠቀሙ. ምሳሌ ውስጥ ጥቅም ላይ ነው, እና ደንበኛ ኩባንያው ስም ማስገባት አለብዎት ማለት አይደለም - ይህ ቁጥር ይወሰናል. ቪዛ ካርድ ሁልጊዜ ቁጥር 4 ጋር ይጀምራሉ እና 13 ወይም 16 ዲጂቶች አንድ ርዝመት አላቸው. MasterCard በዚህም ምክንያት ረጅም ቁጥር 16 ጋር 51-55 ያለውን ክልል ውስጥ ይጀምራል, እኛ የሚከተለውን መግለጫ ያገኛሉ:
ትዕዛዙ በማስኬድ በፊት ተጨማሪ Luhn ስልተ ቀመር ነው የሚሰላው ይህም ቁጥር, የመጨረሻ አሃዞች ሊሞከሩ ይችላሉ.
በማረጋገጥ የስልክ ቁጥር
ተግባር. የገባው ስልክ ቁጥር ትክክለኛነት በማረጋገጥ ላይ.
ውሳኔ. ቋሚ እና ተንቀሳቃሽ ስልክ ቁጥሮች ውስጥ አሃዞች ቁጥር በጣም በጣም አቀፍ, ስልክ ቁጥር በትክክል የማይቻል መደበኛ አገላለጾችን በመጠቀም ይመልከቱ አገር ላይ ይለያያል. ነገር ግን አቀፍ ቁጥሮች ንድፍ ላይ ምልክት የሆነ ጥብቅ ቅርጸት እና ፍጹም አለን. ይበልጥ ተጨማሪ እና ተጨማሪ ብሔራዊ የስልክ አንቀሳቃሾች ተመሳሳይ መስፈርት ማሟላት እየሞከሩ እንደሆነ እንዲሁ. እንደሚከተለው ክፍል መዋቅር ነው:
+ CCC.NNNNNNNNNNxEEEE, የት:
- ሐ - 1-3 አሃዞች ያካተተ አገር ኮድ ነው.
- N - 14 አሀዝ እስከ ቁጥር.
- ኢ - አማራጭ ቅጥያ.
ፕላስ አንድ በጣም አስፈላጊ ንጥረ ነገር ነው; ምልክት 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]) $ |
ፍለጋ አይ ፒ-አድራሻዎች
ተግባር. ይህ በተወሰነ ሕብረቁምፊ 000.000.000.000-255.255.255.255 ክልል ውስጥ IPv4 ቅርጸት ትክክለኛ IP-አድራሻ እንዳልሆነ ለመወሰን አስፈላጊ ነው.
ውሳኔ. ፒኤችፒ ቋንቋ ውስጥ ማንኛውም ችግር ጋር እንደ መደበኛ አገላለጽ ብዙ varintov አለው. ለምሳሌ ያህል, ይህ:
አገላለጾች የመስመር ላይ ምልከታ
ለጀማሪዎች ምክንያቱም "መደበኛ" የፕሮግራም ቋንቋዎች የተለየ ያለውን አገባብ ያለውን ውስብስብነት, አስቸጋሪ ሊሆን ይችላል በትክክል regex ይመልከቱ. ይህን ችግር ለመፍታት, ቀላል እውነተኛ ጽሑፍ ውስጥ የተፈጠረው አብነት ያለውን ትክክለኛነት ለማረጋገጥ ለማድረግ በርካታ የመስመር ላይ ሞካሪዎች መግለጫዎች አሉ. በፕሮግራም አገላለጽ እና የማረጋገጫ ውሂብ የሚገባ ወዲያውኑ ሂደት ውጤት ማየት. አብዛኛውን ጊዜ በጣም የተስፋፉ ቋንቋዎች መደበኛ መግለጫዎች, ምሳሌዎች እና ትግበራ ልዩነት በዝርዝር አንድ ማጣቀሻ ክፍል, ማቅረብ የለም.
ነገር ግን ሙሉ በሙሉ መተማመን የመስመር ላይ አገልግሎቶች ውጤቶች ፒኤችፒ የሚጠቀሙ ሁሉ ገንቢዎች የሚመከር አይደለም. አንድ መደበኛ አገላለጽ በጽሑፍ እና በአካል የተረጋገጠ, ብቃት ያስነሳል እና ስህተቶች አለመኖር ዋስትና ነው.
Similar articles
Trending Now