పైథాన్‌తో రెగ్యులర్ వ్యక్తీకరణలకు బిగినర్స్ గైడ్

పైథాన్‌తో రెగ్యులర్ వ్యక్తీకరణలకు బిగినర్స్ గైడ్

మీరు ప్రోగ్రామర్ అయితే, రెగ్యులర్ ఎక్స్‌ప్రెషన్స్ (రెగెక్స్) అంటే ఏమిటో మీకు ఇప్పటికే తెలిసే అవకాశాలు ఉన్నాయి. రెగెక్స్ నమూనాలు దాదాపు ప్రతి ప్రధాన స్రవంతి ప్రోగ్రామింగ్ భాషలో అమలు చేయబడ్డాయి, కానీ ఇప్పటికీ, ఈ నమూనాల శక్తి మరియు పాండిత్యము చాలా మంది డెవలపర్‌లచే గుర్తించబడలేదు.





ఈ గైడ్ రెగ్యులర్ ఎక్స్‌ప్రెషన్‌ల గురించి మరియు మీరు వాటిని పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో ఎలా ఉపయోగించవచ్చు.





రెగ్యులర్ ఎక్స్‌ప్రెషన్స్ అంటే ఏమిటి?

రెగ్యులర్ ఎక్స్‌ప్రెషన్స్ అనేది టెక్స్ట్ ఫైల్‌లు మరియు స్ట్రింగ్‌లలో యూజర్‌తో క్యారెక్టర్ కాంబినేషన్‌లను సరిపోల్చడంలో సహాయపడే నమూనాలు. కమాండ్ లేదా డాక్యుమెంట్ యొక్క అవుట్‌పుట్‌లో నిర్దిష్ట నమూనాను ఫిల్టర్ చేయడానికి లేదా కనుగొనడానికి మీరు రెగ్యులర్ ఎక్స్‌ప్రెషన్‌లను ఉపయోగించవచ్చు.





రెగ్యులర్ ఎక్స్‌ప్రెషన్‌ల యొక్క వివిధ ఉపయోగ కేసులు ఉన్నాయి, అత్యంత ప్రసిద్ధమైనవి Linux లో grep కమాండ్ . ఇతర అప్లికేషన్లలో డేటా డంప్ నుండి ఇమెయిల్ చిరునామాలు మరియు ఫోన్ నంబర్లను సేకరించడం వంటి సమాచార వడపోత ఉన్నాయి.

చాలా మంది డెవలపర్లు రెగ్యులర్ ఎక్స్‌ప్రెషన్‌లకు దూరంగా ఉండటానికి ప్రధాన కారణం ప్యాటర్న్ మ్యాచింగ్ శక్తి గురించి అవగాహన లేకపోవడమే. నమూనాలలో ఉపయోగించే భారీ అక్షరాలు మరియు సన్నివేశాల కారణంగా కొందరు సాధారణ వ్యక్తీకరణలను గందరగోళానికి గురిచేస్తారు.



కారణం ఏమైనప్పటికీ, రెగ్యులర్ ఎక్స్‌ప్రెషన్‌లు ప్రతి ఒక్కరూ తెలుసుకోవలసిన ప్రోగ్రామింగ్ యొక్క అత్యంత ముఖ్యమైన అంశాలలో ఒకటి.

ఇంటర్నెట్‌లో ఉచితంగా ఒకరిని ఎలా కనుగొనాలి

రెగ్యులర్ ఎక్స్‌ప్రెషన్స్: మ్యాచింగ్ క్యారెక్టర్స్ అండ్ సీక్వెన్స్

రెగెక్స్ అనేది పూర్తిగా కొత్త భాష. రెగెక్స్ ఇంజిన్ నిర్దిష్ట అర్థాలతో కూడిన అనేక అక్షరాలతో కూడిన నమూనాలను వివరిస్తుంది. ఆల్ఫాన్యూమరిక్ అక్షరాలు వంటి ప్రాథమిక అక్షరాలు తమను తాము సరిపోల్చుకుంటాయి. కానీ $, *, +, {, మొదలైన క్లిష్టమైన అక్షరాలు ఉన్నత-ఆర్డర్ సరిపోలికలో సహాయపడతాయి.





  1. తారకం (*): మునుపటి అక్షరం సున్నా లేదా అంతకంటే ఎక్కువ సార్లు సరిపోతుంది. అక్షరానికి అక్షరార్థం 'మూలకం n రెట్లు గుణించాలి'. ఉదాహరణకు, సాధారణ వ్యక్తీకరణ అయితే abc * , సరిపోయే తీగలు ab, abc, abcc, abccc, abcccc, మొదలైనవి [bc]* bc, bcbc, bcbc, మొదలైన వాటితో సరిపోతుంది.
  2. మరిన్ని (+): మునుపటి అక్షరానికి ఒకటి లేదా అంతకంటే ఎక్కువ సార్లు సరిపోలుతుంది. యొక్క పని + పాత్ర పోలి ఉంటుంది * , కానీ + పాత్ర జరగకపోతే పాత్ర నమూనాను వదిలివేస్తుంది. ఉదాహరణకి, abc + abc, abcc, abccc, మొదలైన వాటికి సరిపోతుంది కానీ ab కాదు.
  3. ప్రశ్నార్థకం (?): మునుపటి అక్షరం సున్నా లేదా ఒక సారి (ల) తో సరిపోతుంది. ఉదాహరణకు, నమూనా abc? ab మరియు abc కి మాత్రమే సరిపోతుంది.
  4. పైపు (|): బైనరీగా ఉపయోగిస్తారు లేదా ఆపరేటర్. పైపుకు ముందు మరియు తరువాత ఉన్న అక్షరాలలో ఏదైనా సరిపోలుతుంది. ఉదాహరణకి, a | b a లేదా b కి సరిపోతుంది.
  5. చుక్క (.): గుర్తింపు తెలియని పాత్రతో సరిపోలుతుంది. ఉదాహరణకి, a.c aac, abc, acc, a2c, మొదలైన వాటితో సరిపోతుంది.
  6. క్యారెట్ (^): నమూనాలోని మొదటి అక్షరంతో సరిపోతుంది. ఉదాహరణకి, . రా మొదలయ్యే పదాలతో సరిపోతుంది అవుట్ కుందేలు, రాకూన్ మరియు యాదృచ్ఛిక వంటివి.
  7. డాలర్ ($): నమూనాలోని చివరి అక్షరంతో సరిపోతుంది. ఉదాహరణకి, ఒక $ తో ముగిసే పదాలతో సరిపోతుంది ఒక వాన్, డాన్ మరియు ప్లాన్ వంటివి.
  8. అడ్డగీత (-): అక్షరాల పరిధిని నిర్వచించడానికి ఉపయోగిస్తారు. ఉదాహరణకి, [0-9] అన్ని సింగిల్ డిజిట్ న్యూమరిక్ అక్షరాలతో సరిపోతుంది.

సాధారణ వ్యక్తీకరణ నమూనాలలో ఉపయోగించే ప్రత్యేక సన్నివేశాలు:

  1. TO: స్ట్రింగ్ ప్రారంభంలో తదుపరి అక్షరాలు ఉంటే మ్యాచ్‌ను అందిస్తుంది. ఉదాహరణకి, ది తో మొదలయ్యే పదాలతో సరిపోతుంది ది ది, వారు, వారు, మొదలైనవి
  2. b: పదం ప్రారంభంలో లేదా చివరిలో అక్షరం కనుగొనబడితే మ్యాచ్‌ను అందిస్తుంది. ఉదాహరణకి, bmad మరియు పిచ్చి b వంటి పదాలతో సరిపోతుంది తయారు చేయబడింది మరియు సంచార వరుసగా.
  3. B: పదం ప్రారంభంలో లేదా ముగింపులో అక్షరం కనిపించకపోతే మ్యాచ్‌ను అందిస్తుంది.
  4. d: స్ట్రింగ్‌లో ఉన్న సంఖ్యా అక్షరాలతో సరిపోలుతుంది. ఉదాహరణకి, /d* 1, 12, 1232 మొదలైన నంబర్‌లతో సరిపోలుతుంది.
  5. D: స్ట్రింగ్‌లో సంఖ్యా రహిత అక్షరాలతో సరిపోలుతుంది. /డి a, b, c, f, మొదలైన వాటికి సరిపోతుంది.
  6. s: టెక్స్ట్‌లో వైట్‌స్పేస్ అక్షరంతో సరిపోతుంది.
  7. S: టెక్స్ట్‌లో నాన్‌వైట్‌స్పేస్ అక్షరంతో సరిపోతుంది.
  8. in: స్ట్రింగ్‌లో అండర్‌స్కోర్‌లతో సహా ఆల్ఫాన్యూమరిక్ అక్షరాలు ఉంటే మ్యాచ్‌ను అందిస్తుంది. ఉదాహరణకి, in a, b, c, d, 1, 2, 3, మొదలైన వాటికి సరిపోతుంది.
  9. IN: స్ట్రింగ్‌లో ఆల్ఫాన్యూమరిక్ అక్షరాలు లేదా అండర్‌స్కోర్‌లు లేనట్లయితే మ్యాచ్‌ను అందిస్తుంది.
  10. దీనితో: స్ట్రింగ్ చివర అక్షరాలను సరిపోల్చుతుంది. ఉదాహరణకి, ముగింపు Z తో ముగిసే పదాలతో సరిపోతుంది ముగింపు వంపు, మెండ్, టెండ్ మొదలైనవి.

సాధారణ వ్యక్తీకరణల కోసం పైథాన్ పద్ధతులు

పైథాన్‌లో, ది తిరిగి లైబ్రరీ మీ ప్రోగ్రామ్‌లలో రెగెక్స్‌ను అమలు చేయడానికి అవసరమైన అన్ని విధులు మరియు యుటిలిటీలను అందిస్తుంది. పైథాన్ ఇంటర్‌ప్రెటర్‌తో ముందే ఇన్‌స్టాల్ చేయబడినందున మీరు పిపిని ఉపయోగించి లైబ్రరీని డౌన్‌లోడ్ చేయనవసరం లేదు.





దిగుమతి చేయడానికి తిరిగి పైథాన్‌లో లైబ్రరీ, మీ స్క్రిప్ట్‌కు కింది కోడ్‌ను జోడించండి:

import re

పైథాన్‌లో రెగ్యులర్ ఎక్స్‌ప్రెషన్‌లను పాస్ చేస్తున్నప్పుడు, ముడి తీగలను ప్రత్యేక అక్షరాలను వివరించనందున మేము వాటిని ఉపయోగిస్తాము n మరియు t విభిన్నంగా.

మ్యాచ్ ()

ది re. మ్యాచ్ () పేర్కొన్న స్ట్రింగ్ ప్రారంభంలో ప్రోగ్రామ్ సరిపోలినట్లయితే పైథాన్‌లోని పద్ధతి రీజెక్స్ వస్తువును అందిస్తుంది. ఈ ఫంక్షన్ రెండు ప్రాథమిక వాదనలను తీసుకుంటుంది:

re.match(pattern, string)

...ఎక్కడ నమూనా సాధారణ వ్యక్తీకరణ మరియు స్ట్రింగ్ అనేది శోధించాల్సిన టెక్స్ట్.

దిగువ కోడ్ స్నిప్పెట్‌ను చూడండి.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

ది ఆర్ స్ట్రింగ్ ముందు ఉన్న పాత్ర ముడి స్ట్రింగ్‌ని సూచిస్తుంది.

అవుట్‌పుట్:

None

పైన పేర్కొన్న కోడ్ తిరిగి వస్తుంది ఏదీ లేదు ఎందుకంటే పద స్ట్రింగ్ ప్రారంభంలో లేదు.

ఒక మ్యాచ్ కనుగొనబడితే, మీరు దాన్ని ఉపయోగించి మ్యాచ్‌ను ప్రింట్ చేయవచ్చు సమూహం () రీజెక్స్ వస్తువుకు సంబంధించిన పద్ధతి.

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

అవుట్‌పుట్:

Word

ది తిరిగి శోధన () పద్ధతి re.match () వంటి వాదనలను తీసుకుంటుంది. మ్యాచ్ () స్ట్రింగ్ ప్రారంభంలో ఉన్న మ్యాచ్‌లను మాత్రమే అందిస్తుంది, వెతకండి() స్ట్రింగ్‌లోని ఏదైనా ఇండెక్స్‌లో కనిపించే మ్యాచ్‌లను తిరిగి అందిస్తుంది.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

గమనించండి మ్యాచ్ () మరియు వెతకండి() పద్ధతులు ఒక నమూనా మ్యాచ్‌ని మాత్రమే అందిస్తాయి. పైన పేర్కొన్న కోడ్‌లో, పద రెండుసార్లు కనిపిస్తుంది. కానీ వెతకండి() ఫంక్షన్ పదం యొక్క మొదటి సంఘటనతో మాత్రమే సరిపోతుంది.

Word

FindAll ()

మీరు ఇప్పటికే ఊహించినట్లుగా, ది కనుగొనండి () స్ట్రింగ్‌లో సాధ్యమయ్యే ప్రతి మ్యాచ్‌ని పద్ధతి అందిస్తుంది.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

రీజెక్స్ వస్తువును తిరిగి ఇచ్చే బదులు, findall () ఫంక్షన్ అన్ని మ్యాచ్‌ల జాబితాను అందిస్తుంది. మీరు a ద్వారా జాబితా ద్వారా మళ్లీ చెప్పవచ్చు పైథాన్‌లో లూప్ కోసం .

విభజన ()

మీరు ఒక స్ట్రింగ్‌ని ఉప-తీగలుగా విభజించాలనుకుంటే, ఒక నమూనాను డీలిమిటర్‌గా ఉపయోగించి, అప్పుడు విభజన () ఫంక్షన్ మీకు అవసరమైనది.

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

అవుట్‌పుట్:

['This word', 'that', 'this are different.']

ఉప ()

ది ఉప () ఒక నమూనా స్థానంలో ఒక నిర్దిష్ట పదాన్ని భర్తీ చేయడానికి వినియోగదారుని పద్ధతి అనుమతిస్తుంది. ఇది క్రింది వాదనలను తీసుకుంటుంది.

re.sub(pattern, replacement, string)

ఈ కోడ్ స్నిప్పెట్‌ని పరిగణించండి:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

అవుట్‌పుట్:

Dave or Harry must be punished.

కంపైల్ ()

ది re.compile () లో పద్ధతి తిరిగి లైబ్రరీ మెమరీలో రెగ్యులర్ ఎక్స్‌ప్రెషన్ ప్యాటర్న్ యొక్క కంపైల్డ్ వెర్షన్‌ను స్టోర్ చేయడానికి వినియోగదారుని అనుమతిస్తుంది. అప్పుడు, కంపైల్ చేసిన ఆబ్జెక్ట్‌ను ఉపయోగించి, వినియోగదారు సరిపోలిన నమూనాల కోసం పేర్కొన్న టెక్స్ట్ డంప్‌ను త్వరగా ఫిల్టర్ చేయవచ్చు.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

ఈ ఫంక్షన్ ప్రధానంగా వనరుల-ఇంటెన్సివ్ మరియు అమలు చేయడానికి చాలా సమయం అవసరమయ్యే నమూనాలను సేవ్ చేయడానికి ఉపయోగించబడుతుంది. నమూనాను ఒక వస్తువుగా కంపైల్ చేయడం మరియు సేవ్ చేయడం ఈ సమస్యను పరిష్కరిస్తుంది.

పైథాన్‌తో రెగెక్స్ యొక్క శక్తిని పెంచుకోండి

మీరు టెక్స్ట్ ఫైల్స్ మరియు అవుట్‌పుట్‌తో పని చేస్తున్నప్పుడు, రెజెక్స్ మీ వద్ద ఉండే గొప్ప సాధనం. డాక్యుమెంట్‌లోని నిర్దిష్ట నమూనాలను ఫిల్టర్ చేయడానికి లేదా ప్రత్యామ్నాయం చేయడానికి మీరు త్వరగా కొన్ని కోడ్‌లను వ్రాయవచ్చు.

మీరు రీజెక్స్‌తో ప్రారంభిస్తే అన్ని అక్షరాలు మరియు మ్యాచింగ్ సీక్వెన్స్‌లను గుర్తుంచుకోవడం కష్టం. రెగ్యులర్ ఎక్స్‌ప్రెషన్స్‌లో మెరుగ్గా ఉండటానికి, ప్రతిసారీ అక్షరాలు, పద్ధతులు మరియు సీక్వెన్స్‌ల జాబితాను ప్రస్తావించడం దీర్ఘకాలంలో మీకు ఖచ్చితంగా సహాయపడుతుంది.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ బడ్డింగ్ ప్రోగ్రామర్‌ల కోసం పైథాన్ రీఎక్స్ చీట్ షీట్

పైథాన్ రెగ్యులర్ ఎక్స్‌ప్రెషన్‌ల జాబితాను ఉపయోగించండి, తద్వారా మీరు ఈ బహుముఖ ప్రోగ్రామింగ్ లాంగ్వేజ్‌ని బాగా ఉపయోగించుకోవచ్చు.

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ప్రోగ్రామింగ్
  • ప్రోగ్రామింగ్
  • పైథాన్
రచయిత గురుంచి దీపేశ్ శర్మ(79 కథనాలు ప్రచురించబడ్డాయి)

దీపేశ్ MUO లో Linux కి జూనియర్ ఎడిటర్. అతను లినక్స్‌లో సమాచార మార్గదర్శకాలను వ్రాస్తాడు, కొత్తవాళ్లందరికీ ఆనందకరమైన అనుభూతిని అందించాలనే లక్ష్యంతో. సినిమాల గురించి ఖచ్చితంగా తెలియదు, కానీ మీరు టెక్నాలజీ గురించి మాట్లాడాలనుకుంటే, అతను మీ వ్యక్తి. అతని ఖాళీ సమయంలో, అతను పుస్తకాలు చదవడం, విభిన్న సంగీత ప్రక్రియలను వినడం లేదా అతని గిటార్ వాయించడం మీరు చూడవచ్చు.

దీపేశ్ శర్మ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి