Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

उदाहरण के साथ पायथन में नियमित अभिव्यक्ति?

रेगुलर एक्सप्रेशन एक प्रकार की प्रोग्रामिंग भाषा है जिसका उपयोग यह पहचानने के लिए किया जाता है कि वर्णों के दिए गए अनुक्रम (स्ट्रिंग) में कोई पैटर्न मौजूद है या नहीं।

रेगुलर एक्सप्रेशन या रेगेक्स वर्णों का एक क्रम है जिसका उपयोग यह जांचने के लिए किया जाता है कि स्ट्रिंग में निर्दिष्ट खोज पैटर्न है या नहीं।

RegEx मॉड्यूल

रेगेक्स मॉड्यूल का उपयोग करने के लिए, पायथन री नामक बिल्ट-इन पैकेज के साथ आता है, जिसे हमें रेगुलर एक्सप्रेशन के साथ काम करने की आवश्यकता होती है। RegEx मॉड्यूल का उपयोग करने के लिए, बस पुनः मॉड्यूल आयात करें।

import re

उदाहरण

import re
txt = "Use of python in Machine Learning"
x = re.search("^Use.*Learning$", txt)
if (x):
   print("YES! We have a match!")
else:
   print("No match")

आउटपुट

YES! We have a match!

RegEx फ़ंक्शन

री मॉड्यूल कुछ ऐसे फंक्शन प्रदान करता है जो हमें एक मैच के लिए एक स्ट्रिंग खोजने की अनुमति देता है।

फ़ंक्शन
विवरण
ढूंढें
सभी मैचों वाली सूची लौटाता है
खोज
एक मैच ऑब्जेक्ट देता है, अगर मैच स्ट्रिंग में कहीं भी पाया जाता है
विभाजन
एक सूची देता है, जहां प्रत्येक गणित में स्ट्रिंग को विभाजित किया गया है
उप
एक या कई मैचों को एक स्ट्रिंग से बदल देता है

मेटा कैरेक्टर

RegEx में मेटाकैरेक्टर एक विशेष अर्थ वाले वर्ण होते हैं।

<टीडी>
अक्षर
विवरण
उदाहरण
[]
अक्षरों का एक सेट
“[ए-एम]”
\
एक विशेष अनुक्रम का संकेत देता है, जिसका उपयोग विशेष वर्णों से बचने के लिए भी किया जाता है
“\d”
.
न्यूलाइन कैरेक्टर को छोड़कर कोई भी कैरेक्टर
“वह..ओ”
^
से शुरू होता है
“^हैलो”
$
के साथ समाप्त होता है
“विश्व$”
*
शून्य या अधिक अवसर
“ऐक्स*”
+
एक या अधिक बारंबारता
“ऐक्स+”
{}
घटनाओं की सटीक निर्दिष्ट संख्या
“ए|{2}”
|
या तो या
“छोटा|लंबा”
()
कैप्चर करें और ग्रुप करें

विशेष क्रम

RegEx में विशेष क्रम एक \ के बाद नीचे सूचीबद्ध वर्णों में से एक है और इसका एक विशेष अर्थ है -

चरित्र
विवरण
उदाहरण
\A
यदि निर्दिष्ट वर्ण स्ट्रिंग की शुरुआत में हैं तो एक मिलान लौटाता है
“\APyt”
\b
यदि निर्दिष्ट वर्ण किसी शब्द के प्रारंभ या अंत में हैं तो एक मिलान लौटाता है
r”\bपायथन” r”world\b”
\B
यदि निर्दिष्ट वर्ण मौजूद हैं, लेकिन किसी शब्द के प्रारंभ (या अंत में) पर नहीं, तो मिलान लौटाता है
r”\BPython” r”World\B”
\d
यदि स्ट्रिंग में अंक हैं तो मिलान लौटाता है
“\d”
\D
यदि स्ट्रिंग में अंक नहीं हैं तो एक मिलान लौटाता है
“\D”
\s
एक मैच देता है जहां स्ट्रिंग में एक सफेद स्पेस कैरेक्टर होता है
“\s”
\S
एक मैच देता है जहां स्ट्रिंग में एक सफेद स्थान वर्ण नहीं होता है
“\S”
\w
यदि स्ट्रिंग में कोई शब्द वर्ण हैं तो एक मिलान लौटाता है (अक्षर a से Z तक के अक्षर, 0-9 के अंक और अंडरस्कोर _ वर्ण हो सकते हैं)
“\w”
\W
एक मैच देता है जहां स्ट्रिंग में कोई शब्द वर्ण नहीं होता है
“\W”
\Z
यदि निर्दिष्ट वर्ण स्ट्रिंग के अंत में हैं तो एक मिलान लौटाता है
“विश्व\Z”

सेट

रेगेक्स में एक सेट वर्ग कोष्ठक [] की एक जोड़ी के अंदर वर्णों का एक समूह है जिसका कुछ विशेष अर्थ होता है।

सेट करें
विवरण
[राज]
यदि निर्दिष्ट वर्णों में से कोई एक (a, r या n) मौजूद है तो एक मैच लौटाता है
[a-r]
a और r . के बीच वर्णानुक्रम में किसी भी छोटे अक्षर के लिए एक मिलान देता है
[^राज]
r, a और j . को छोड़कर किसी भी वर्ण के लिए मिलान लौटाता है
[0123]
एक मैच देता है जहां कोई भी स्पी
[0-9]
0 और 9 के बीच किसी भी अंक के लिए एक मैच देता है
[0-3][0-8]
00 और 38 के बीच किसी भी दो अंकों की संख्या के लिए एक मैच देता है
[a-zA-Z]
a से z या A से Z के बीच वर्णानुक्रम में किसी भी वर्ण के लिए एक मिलान देता है
[+]
स्ट्रिंग में किसी भी + वर्ण के लिए मिलान लौटाएं

उदाहरण - Findall()

Findall () फ़ंक्शन सभी मैचों की एक सूची देता है।

#Print a list of all matches (“in”) from a text
import re
txt = "Use of python in Machine Learning"
x = re.findall("in", txt)
print(x)

आउटपुट

['in', 'in', 'in']

उपरोक्त आउटपुट डिस्प्ले सूची में सभी मिलान उस क्रम में होते हैं जिस क्रम में वे पाए जाते हैं। हालांकि, यदि कोई मिलान नहीं मिला, तो एक खाली सूची प्रदर्शित होती है।

बस अपने उपरोक्त कार्यक्रम में नीचे की पंक्ति को बदलें, "पैटर्न" जो टेक्स्ट या स्ट्रिंग में नहीं है।

x = re.findall("Hello", txt)

आउटपुट

[]

उदाहरण - खोज () फ़ंक्शन

खोज () फ़ंक्शन स्ट्रिंग की खोज करता है और मैच मिलने पर एक मैच ऑब्जेक्ट देता है।

हालांकि, अगर एक से अधिक मैच हैं, तो मैच की केवल पहली बार वापसी की जाएगी।

import re
txt = "Python is one of the most popular languages around the world"
searchObj = re.search("\s", txt)
print("The first white-space character is located in position: ", searchObj.start())

आउटपुट

The first white-space character is located in position: 6

हालांकि, अगर कोई मैच नहीं मिला तो कोई नहीं लौटाया जाता है।

उदाहरण - विभाजन () फ़ंक्शन

RegEx में स्प्लिट () फ़ंक्शन एक सूची देता है जहां प्रत्येक मैच में स्ट्रिंग को विभाजित किया गया है -

# Split at each white-space character
import re
string = "Python is one of the most popular languages around the world"
searchObj = re.split("\s", string)
print(searchObj)

परिणाम

['Python', 'is', 'one', 'of', 'the', 'most', 'popular', 'languages', 'around', 'the', 'world']

उदाहरण - उप() फ़ंक्शन

RegEx में उप () फ़ंक्शन मैच को अपनी पसंद के टेक्स्ट से बदलना है।

#Replace every white-space in the string with _:
import re
string = "Python is one of the most popular language around the world"
searchObj = re.sub("\s", "_", string)
print(searchObj)

परिणाम

Python_is_one_of_the_most_popular_language_around_the_world

ऑब्जेक्ट का मिलान करें

RegEx में एक मिलान वस्तु एक वस्तु है जिसमें खोज और परिणाम के बारे में जानकारी होती है। कोई मिलान नहीं मिला, कोई नहीं लौटा।

उदाहरण - एक स्ट्रिंग खोजें और मैच ऑब्जेक्ट लौटाएं।

import re
string = "Python is one of the most popular language around the world"
searchObj = re.search("on", string)
print(searchObj)

परिणाम

<_sre.SRE_Match object; span=(4, 6), match='on'>

मैच ऑब्जेक्ट में खोज और परिणाम के बारे में जानकारी प्राप्त करने के लिए उपयोग किए जाने वाले गुण और विधियां हैं।

  • .span() - एक टपल लौटाता है जिसमें पाए गए मैच की शुरुआत और अंत स्थिति होती है।

  • .स्ट्रिंग - फ़ंक्शन में पारित स्ट्रिंग लौटाता है।

  • .समूह () - स्ट्रिंग के उस हिस्से को लौटाता है जहां एक मैच था।

उदाहरण - स्ट्रिंग के उस हिस्से को प्रिंट करें जहां मैच था।

#Looks for any words that starts with the an upper case “P”:
import re
string = "Python is one of the most popular language around the world"
searchObj = re.search(r"\bP\w+", string)
print(searchObj)

परिणाम

<_sre.SRE_Match object; span=(0, 6), match='Python'>

  1. जावास्क्रिप्ट रेगुलर एक्सप्रेशन संशोधक को उदाहरणों के साथ समझाएं

    जावास्क्रिप्ट रेगुलर एक्सप्रेशन संशोधक रेगुलर एक्सप्रेशन का वैकल्पिक हिस्सा हैं और हमें केस असंवेदनशील और वैश्विक खोजकर्ता करने की अनुमति देते हैं। संशोधक को एक साथ भी जोड़ा जा सकता है। संशोधक निम्नलिखित हैं - संशोधक विवरण g यह वैश्विक मिलान को सक्षम बनाता है और पहले मैच पर रुकने के बजाय सभी मि

  1. रेगुलर एक्सप्रेशन का उपयोग करके पायथन में गैर-शब्द वर्णों का मिलान कैसे करें?

    नीचे दिया गया यह कोड दिए गए स्ट्रिंग के सभी गैर-शब्द वर्णों से मेल खाता है और उनकी सूची को प्रिंट करता है। उदाहरण import re s = 'ab5z8d*$&Y@' regx = re.compile('\W') result = regx.findall(s) print result आउटपुट यह आउटपुट देता है ['*', '$', '&', '@&

  1. रेगुलर एक्सप्रेशन का उपयोग करके अजगर में किसी शब्द का मिलान कैसे करें?

    निम्न कोड दिए गए स्ट्रिंग में मीटिंग शब्द से मेल खाता है। यह संलग्न पात्रों का सम्मान करने के लिए सकारात्मक लुक-आगे और पीछे-पीछे के अभिकथनों का उपयोग करता है, लेकिन उन्हें मैच में शामिल किए बिना। उदाहरण import re s = """https://www.google.com/meeting_agenda_minutes.html""&quo