रेगुलर एक्सप्रेशन एक प्रकार की प्रोग्रामिंग भाषा है जिसका उपयोग यह पहचानने के लिए किया जाता है कि वर्णों के दिए गए अनुक्रम (स्ट्रिंग) में कोई पैटर्न मौजूद है या नहीं।
रेगुलर एक्सप्रेशन या रेगेक्स वर्णों का एक क्रम है जिसका उपयोग यह जांचने के लिए किया जाता है कि स्ट्रिंग में निर्दिष्ट खोज पैटर्न है या नहीं।
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'>