కంప్యూటర్లుప్రోగ్రామింగ్

PHP (regex) - ఇది ఏమిటి? ఉదాహరణలు మరియు సాధారణ వ్యక్తీకరణలను తనిఖీ

ఏ ఆధునిక ప్రోగ్రామింగ్ భాషలో టెక్స్ట్ తో పని చేసినప్పుడు, డెవలపర్లు నిరంతరం, కావలసిన నమూనా అనువర్తనం కోసం ఇన్పుట్ సాధికారిత లక్ష్యాలను కలవడానికి అన్వేషణ మరియు పరీక్ష శకలాలు మరియు పాత్ర సమాచారాన్ని ప్రాసెస్ కార్యకలాపాల ఇతర రకాల స్థానంలో. మీ సొంత ధ్రువీకరణ అల్గోరిథంలు సమయం కోల్పోవడం, దాని అభివృద్ధి మరియు ఆధునికీకరణ లో కోడ్ అనుకూలత మరియు సంక్లిష్టత దారితీస్తుంది అభివృద్ధి.

ఇంటర్నెట్ మరియు వెబ్ డిజైన్ భాషలు వేగంగా అభివృద్ధి ఈ కోడ్ అవసరం తక్కువమంది టెక్స్ట్ ప్రాసెసింగ్ బహుముఖ మరియు కాంపాక్ట్ సాధనాలు సృష్టి అవసరం. ఇది మినహాయింపు ఉంది మరియు ప్రారంభ మరియు PHP భాష ప్రొఫెషనల్ డెవలపర్లు ప్రసిద్ధి చెందింది. టెక్స్ట్ నిర్వహించడానికి విధిని సులభతరం మరియు పదుల మరియు పంక్తులు వందల కోడ్ తగ్గించేందుకు టెక్స్ట్ టెంప్లేట్లు సాధారణ వ్యక్తీకరణకు భాష. అనేక సమస్యలు అన్ని వద్ద అది లేకుండా పరిష్కరించాడు సాధ్యం కాదు.

PHP లో సాధారణ వ్యక్తీకరణలను

«Ereg», «mb_ereg» మరియు «ప్రేమ్» - PHP భాష సాధారణ వ్యక్తీకరణలను తో పని కోసం మూడు విధానాల ఉంది. అత్యంత సాధారణ ఇంటర్ఫేస్ «ప్రేమ్» దీని విధులు PCRE సాధారణ వ్యక్తీకరణకు మద్దతు, దిన్ని PHP ప్యాకేజీ చేర్చబడింది ఇది పెర్ల్ భాష, కొరకు అభివృద్ధి లైబ్రరీ యాక్సెస్ అందిస్తాయి. సాధారణ వ్యక్తీకరణలను భాషలో ఒక నిర్దిష్ట నమూనా ప్రకారం, ప్రేమ్ కోరుతూ ఇచ్చిన టెక్స్ట్ స్ట్రింగ్ మ్యాచింగ్ విధులు.

వాక్యనిర్మాణం బేసిక్స్

ఒక చిన్న వ్యాసం భాగంగా అది ఒక ప్రత్యేక సాహిత్య ఉంది ఈ కోసం, మొత్తం సాధారణ వ్యక్తీకరణ వాక్య వివరాలు వివరించడానికి అసాధ్యం. మేము డెవలపర్ అవకాశాలు చూపించు మరియు కోడ్ ఉదాహరణలు అర్థం మాత్రమే ప్రధాన అంశాలు ప్రస్తుత.

PHP లో సాధారణ వ్యక్తీకరణకు అధికారికంగా చాలా కష్టం నిర్వచించబడింది, మరియు అందువలన వివరణ సులభతరం. ఒక సాధారణ వ్యక్తీకరణ ఒక టెక్స్ట్ స్ట్రింగ్. ఇది ఒక ప్రత్యేక విభజించడానికి టెంప్లేట్ మరియు అది నిర్వహించడానికి మార్గం సూచిస్తూ మార్పు కలిగి. నమూనాలను వివిధ ప్రత్యామ్నాయాలు మరియు పునరావృత్తులు సాధ్యం చేర్చడం.

ఉదాహరణకు, వ్యక్తీకరణ / \ d {3} - \ d {2} - \ d {2} / m డివైడర్ "/", టెంప్లేట్, తరువాత మరియు చిహ్నములను «m» మాడిఫైయర్.

సాధారణ వ్యక్తీకరణలను అన్ని శక్తి మెటా-పాత్రలతో ఉపయోగించి ఎన్కోడ్ చేయబడుతుంది. "\" - ప్రధాన భాష metacharacter బాక్ స్లాష్ ఉంది. ఇది సరసన పాత్రలు క్రింది రకం మార్పులు (అంటే. E. ఒక సాధారణ పాత్ర వైల్డ్కార్డ్ మరియు వైస్ వెర్సా మార్చబడింది). «|» పేర్కొంటుంది ప్రత్యామ్నాయ టెంప్లేట్ మరో ముఖ్యమైన metacharacter ఒక సరళ రేఖ ఉంది. మెటా-అక్షరాలు మరిన్ని ఉదాహరణలు:

^ వస్తువు లేదా ఒక స్ట్రింగ్ ప్రారంభం
( subpattern ప్రారంభించండి
) ఎండ్ subpattern
{ ప్రారంభం గణనకర్త
} ఎండ్ గణనకర్త
\ d 0 నుండి 9 వరకు దశాంశ అంకెల
\ D ఒక సంఖ్య కాదు ఏ పాత్ర
\ లు ఖాళీగా చిహ్నం, space, టాబ్
\ w చిహ్నం నిఘంటువు

PHP, సాధారణ వ్యక్తీకరణలను, ఒక ప్రత్యేక చెల్లుబాటులో పాత్ర పరిగణిస్తారు స్పేస్, కాబట్టి WHERE భిన్నంగా ఉంటాయి XYZ మరియు ABC యొక్క వ్యక్తీకరణ ప్రాసెస్.

subpatterns

కుండలీకరణాలు PHP సాధారణ subpatterns లో, మరియు వారు కొన్నిసార్లు "subexpressions" అని పిలుస్తారు. కింది విధులు జరుపుము:

  1. కేటాయింపు ప్రత్యామ్నాయాలు. ఉదాహరణకు, వేడి నమూనా (ఏదో | బర్డ్ |) "Firebird" మరియు "హాట్" పదాలు "వేడి" తో సమానంగా. మరియు బ్రాకెట్లలో లేకుండా కేవలం ఒక శూన్య స్ట్రింగ్, "బర్డ్" మరియు "హాట్" అవుతుంది.

  2. "అద్భుతమైన" subpattern. ఈ నమూనా ఉపస్ట్రింగ్ను సరిపోలిన ఉంటే, అప్పుడు అన్ని మ్యాచ్ తిరిగి అర్థం. స్పష్టత కోసం, మేము ఒక ఉదాహరణ ఇవ్వండి. క్రింది సాధారణ వ్యక్తీకరణకు ఇవ్వబడింది: విజేత అందుకుంటుంది ((బంగారు | బంగారు పూతతో) (పతకాన్ని | కప్)) - మ్యాచ్లకు స్ట్రింగ్, "విజేత ఒక బంగారు పతకం పొందింది." ప్రారంభ పదబంధం పాటు, శోధన ఫలితాలు జారీ చేయబడుతుంది: "గోల్డ్ మెడల్", "పతకాలు", "బంగారం".

ఆపరేటర్స్ పునరావృత్తులు (kvadrifikatory)

సాధారణ వ్యక్తీకరణకు కంపైల్ లో తరచుగా సంఖ్యలు మరియు చిహ్నాలు పునరావృతం విశ్లేషించడానికి అవసరం. ఈ సమస్య కాకపోయినా పునరావృత్తులు చాలా కాదు. కానీ మేము వారి ఖచ్చితమైన సంఖ్య తెలియదు ఏమి? ఈ సందర్భంలో అది ప్రత్యేక metacharacters ఉపయోగించడానికి అవసరం.

తెలుపవచ్చు metacharacters - kvadrifikatory ఉపయోగిస్తారు పునరావృత్తులు యొక్క వివరణ కొరకు. Kvadrifikatory రెండు రకాలు:

  • బ్రాకెట్లలో సాధారణ;
  • తగ్గించారు.

మొత్తంమీద గణనకర్త వంటి x {2,5} కలుపులు లో రెండు సంఖ్యలు, రూపంలో అనుమతి పునరావృత్తులు మూలకం యొక్క గరిష్ట సంఖ్య తాకుతుంటాయి. పునరావృతం గరిష్ట సంఖ్య తెలియనప్పుడు, రెండవ వాదన ఉంది పేర్కొనబడలేదు: x {2}.

సంక్షిప్తంగా పరిమాణాలతో అనవసరమైన ఓవర్లోడింగ్ వాక్యనిర్మాణం తొలగించడానికి పునరావృత్తులు యొక్క అత్యంత సాధారణ గుర్తులు ఉన్నాయి. సాధారణంగా మూడు కట్స్ ఉన్నాయి:

1. * - సున్నా లేదా ఎక్కువ పునరావృత్తులు {0} ఇది సమానం.

2. + - ఒకటి లేదా ఎక్కువ పునరావృత్తులు, అంటే, {1} ...

3.? - సున్నా లేదా ఒకే రిపీట్ - {0,1}.

ఉదాహరణలు regex

ఉత్తమ పాఠ్య పుస్తకం - సాధారణ వ్యక్తీకరణలను ఉదాహరణలు తెలుసుకోవడానికి వారికి. మేము కృషి కనీసం వారి అవకాశాలు చూపించే కొన్ని ఇవ్వాలని. అన్ని కోడ్ పైన PHP 4.x మరియు వెర్షన్లు పూర్తిగా అనుకూలంగా ఉంది. పూర్తిగా మేము జె .. Friedl, "సాధారణ వ్యక్తీకరణలను", పూర్తిగా వాక్యనిర్మాణం ప్రతిపాదించినప్పటికీ పుస్తకం సిఫార్సు అన్ని భాషా లక్షణాలు సింటాక్స్ మరియు వాడుక అర్థం చేసుకోవడానికి, మరియు ఉదాహరణలు సాధారణ వ్యక్తీకరణలను మాత్రమే PHP, కానీ కూడా ఒక పైథాన్, పెర్ల్, MySQL, జావా, రూబీ, మరియు సి # ఉన్నాయి.

ధ్రువీకరణ ఇ-మెయిల్ చిరునామా

టాస్క్. సందర్శకుడు చిరునామా ఇమెయిల్ అభ్యర్థించిన ఇది ఒక ఇంటర్నెట్ పేజీ ఉంది. సాధారణ వ్యక్తీకరణ సందేశాన్ని పంపే ముందు చిరునామాల సరి తనిఖీ చేయాలి. పరిశీలించడం పేర్కొన్న మెయిల్బాక్స్ నిజానికి ఉంది మరియు సందేశాలను అందుకునే హామీ లేదు. కానీ అది ఖచ్చితంగా తప్పు చిరునామాలని కలుపు.

నిర్ణయం. ఏ ప్రోగ్రామింగ్ భాషతో వలె, PHP లో regex ఇమెయిల్ చిరునామా ధృవీకరణ వివిధ రకాలుగా అమలు చేయవచ్చు, మరియు ఈ కథనంలో ఉదాహరణలు చివరి మరియు మాత్రమే ఎంపిక కాదు. అందువలన, ప్రతి సందర్భంలో, మేము ప్రోగ్రామింగ్ మరియు నిర్దిష్ట అమలు డెవలపర్ పూర్తిగా ఆధారపడి ఉన్నప్పుడు ఖాతాలోకి తీసుకోవాలి అని అవసరాలు జాబితా అందించడానికి కమిటీ.

అందువలన, ఒక చెల్లుబాటు అయ్యే ఇమెయిల్ పరీక్షిస్తుంది వ్యక్తీకరణ, తనిఖీ చేయాలి క్రింది పరిస్థితులు:

  1. ప్రారంభ లో ఉనికిని @ చిహ్నం లైన్, మరియు ఏ ఖాళీలు ఉన్నాయి.
  2. @ చిహ్నం యొక్క చిరునామా డొమైన్ భాగంగా, డొమైన్ పేర్లు మాత్రమే చెల్లుతుంది అక్షరాలను కలిగి. అదే వినియోగదారు పేరు వర్తిస్తుంది.
  3. యూజర్పేరు పరిశీలించినప్పుడు అపాస్ట్రఫీని లేదా నిలువు పంక్తి వంటి ప్రత్యేక అక్షరాలు ఉనికిని గుర్తించేందుకు అవసరం. అలాంటి చిహ్నాలను శక్తివంతంగా ప్రమాదకరమైన మరియు SQL ఇంజెక్షన్ దాడులు అటువంటి రకాల కలిగి చేయవచ్చు. చిరునామాలు నివారించండి.
  4. యూజర్ పేర్లు స్ట్రింగ్ లో మొదటి లేదా చివరి అక్షరం కాకపోవచ్చు కేవలం ఒక పాయింట్, అనుమతిస్తాయి.
  5. డొమైన్ పేరు కనీసం రెండు మరియు ఆరు కంటే ఎక్కువ అక్షరాలు కలిగి ఉండాలి.

ఉదాహరణ పరిగణలోకి తీసుకొని ఈ పరిస్థితులు అన్ని క్రింది చిత్రంలో చూడవచ్చు.

ఒక URL క్రమబద్దీకరణకు

టాస్క్. పేర్కొన్న టెక్స్ట్ స్ట్రింగ్ ఒక చెల్లుబాటు అవుతుందో లేదో తనిఖీ చిరునామా URL. మరోసారి మేము సాధారణ వ్యక్తీకరణలను URL చెకింగ్ వివిధ మార్గాలలో అమలు గమనించండి.

నిర్ణయం. మా చివరి సంస్కరణ క్రింది విధంగా ఉంటుంది:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

ఇప్పుడు డ్రాయింగ్ ఉపయోగించి మరింత వివరంగా దాని భాగాలు విశ్లేషించడానికి.

దావా 1 URL ఏ అక్షరాలు ఉండకూడదు ముందు
దావా 2 తప్పనిసరి ఉపసర్గ ఉనికిని తనిఖీ «http»
అంశం 3 ఏ చిహ్నాలు ఉండాలి
దావా 4 అయితే అక్కడ «s», ఒక సురక్షితమైన కనెక్షన్ ను సూచిస్తుందని «https»
దావా 5 అవసరమైన భాగం "//"
దావా 6 అక్షరాలు లేవు
p. 7-9 ధృవీకరిస్తోంది మొదటి స్థాయి డొమైన్ మరియు పాయింట్ సమక్షంలో
p.10-13 రెండవ స్థాయి మరియు పాయింట్ వ్రాసే డొమైన్ ధృవీకరిస్తోంది
p.14-17

ఫైలు నిర్మాణం URL - సంఖ్యలు, అక్షరాలు, అండర్, వడివడిగా, చుక్కలు సమితి, మరియు చివరిలో ఒక స్లాష్

క్రెడిట్ కార్డ్ నంబర్లను తనిఖీ

టాస్క్. మీరు అత్యంత సాధారణ చెల్లింపు వ్యవస్థలను ప్రవేశపెడుతున్న క్రెడిట్ కార్డ్ నంబర్ ధ్రువీకరణ అమలు చేయాలి. మాత్రమే కార్డులు కోసం ఒక వైవిధ్యాన్ని వీసా మరియు మాస్టర్కార్డ్.

నిర్ణయం. వ్యక్తీకరణ సృష్టించడం మీరు ఇన్పుట్ గదిలో ఖాతాలోకి సందుల సాధ్యం ఉనికిని తీసుకోవాలి. మాప్ లో అంకెలు సులభంగా పఠనం మరియు డిక్టేషన్ కోసం బృందాలుగా విభజిస్తారు. అందువలన, ఒక వ్యక్తి (ఉదా. E. ఖాళీలు ఉపయోగించి) ఈ విధంగా అనేక ఎంటర్ ప్రయత్నించవచ్చు ఆ సహజ ఉంది.

ఖాతాలోకి సాధ్యం ఖాళీలు లేదా hyphens పడుతుంది ఒక సార్వత్రిక వ్యక్తీకరణ వ్రాయండి, కేవలం అంకెలు తప్ప అన్ని అక్షరాలు విస్మరించడానికి కంటే మరింత క్లిష్టంగా ఉంటుంది. అందువలన, మేము అంకెలు తప్ప అన్ని అక్షరాలు తొలగిస్తుంది ఒక వైల్డ్కార్డ్ వ్యక్తీకరణ / D ఉపయోగించి సిఫార్సు చేస్తున్నాము.

ఇప్పుడు మీరు చెక్ సంఖ్య నేరుగా వెళ్ళవచ్చు. అన్ని కంపెనీలు, క్రెడిట్ కార్డు జారీచేసేవారు ఒక ప్రత్యేక సంఖ్య ఫార్మాట్ ఉపయోగించండి. ఉదాహరణలో ఉపయోగించినా, మరియు క్లయింట్ కంపెనీ పేరును నమోదు అవసరం లేదు - దాని సంఖ్యను పెంచడం ద్వారా నిర్ణయించబడుతుంది. వీసా కార్డులు ఎల్లప్పుడూ సంఖ్యలు 4 తో ప్రారంభం మరియు 13 లేదా 16 అంకెలు పొడవు కలిగి. మాస్టర్కార్డ్ దీర్ఘ సంఖ్య 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]) $

శోధన IP చిరునామాలు

టాస్క్. ఇది ఇచ్చిన స్ట్రింగ్ 000.000.000.000-255.255.255.255 పరిధిలో IPv4 ఫార్మాట్ లో చెల్లుబాటు అయ్యే IP- చిరునామా నిర్ధారించడానికి అవసరం.

నిర్ణయం. PHP యొక్క భాషలో ఏ సమస్యకు సాధారణ వ్యక్తీకరణకు ఎన్నో varintov ఉంది. ఉదాహరణకు, ఈ:

వ్యక్తీకరణలు ఆన్లైన్ పరిశీలన

సరిగ్గా regex తనిఖీ ప్రారంభ ఎందుకంటే "సాధారణ" ప్రోగ్రామింగ్ భాషల కంటే వైవిధ్యంగా ఉంటుంది వాక్యనిర్మాణం యొక్క సంక్లిష్టత యొక్క కష్టం కోసం. ఈ సమస్యను పరిష్కరించడానికి, మీరు నిజమైన టెక్స్ట్ సృష్టించబడతాయి టెంప్లేట్ యొక్క సరి తనిఖీ చేయడానికి దీన్ని సులభం చేయడానికి అనేక ఆన్లైన్ పరీక్షకులకు వ్యక్తీకరణలు ఉన్నాయి. ప్రోగ్రామర్ వ్యక్తీకరణ మరియు ధృవీకరణ డేటా ప్రవేశిస్తుంది మరియు తక్షణమే ప్రాసెసింగ్ యొక్క ఫలితం చూడండి. సాధారణంగా చాలా పొడిగించిన భాషలకు సాధారణ వ్యక్తీకరణలను, ఉదాహరణలు మరియు అమలు తేడాలు వివరాలను గమనికల విభాగం, ప్రస్తుత ఉంది.

కానీ పూర్తిగా ట్రస్ట్ ఆన్లైన్ సర్వీసులకు ఫలితాలు PHP ఉపయోగించే వారికి అన్ని డెవలపర్లు సిఫార్సు లేదు. ఒక సాధారణ వ్యక్తీకరణ రాస్తారు మరియు వ్యక్తి ధృవీకరించి, అర్హత లేవనెత్తుతుంది మరియు లోపాలు లేకపోవడంతో హామీ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 te.unansea.com. Theme powered by WordPress.