|
प्रश्न 7. एक या अधिक Characters के लिए कौन-सा Quantifier है? |
कई बार हमें किसी बड़े Text में किसी विशेष Pattern को खोजने, जाँचने, निकालने या बदलने की आवश्यकता होती है।
उदाहरण के लिए—
- Text में Mobile Number खोजना
- Email Address Check करना
- केवल Digits निकालना
- किसी Word को Search करना
- Text में मौजूद सभी Numbers निकालना
- किसी Pattern को दूसरे Text से Replace करना
इन कार्यों के लिए Python में Regular Expression (RegEx) का उपयोग किया जाता है।
Python में Regular Expression के लिए re Module उपलब्ध है।
import re
Regular Expression एक ऐसा Pattern है जिसका उपयोग Text के अंदर किसी विशेष Sequence या Format को Search और Process करने के लिए किया जाता है।
उदाहरण:
Hello Python
My mobile number is 9876543210
Email: student@gmail.com
यदि हमें इसमें Mobile Number या Email Address खोजना है, तो Regular Expression बहुत उपयोगी है।
Python में Regular Expression से संबंधित Functions re Module में उपलब्ध हैं।
import re
इसके प्रमुख Functions हैं—
- search()
- match()
- fullmatch()
- findall()
- finditer()
- split()
- sub()
- subn()
search() पूरे String में Pattern को खोजता है।
import re
text = "I am learning Python"
result = re.search("Python", text)
if result:
print("Pattern Found")
else:
print("Pattern Not Found")
Output:
Pattern Found
import re
text = "My name is Rahul"
if re.search("Rahul", text):
print("Name Found")
match() केवल String के Beginning से Pattern को Match करता है।
import re
text = "Python is easy"
result = re.match("Python", text)
if result:
print("Matched")
else:
print("Not Matched")
लेकिन—
import re
text = "I like Python"
result = re.match("Python", text)
print(result)
यहाँ Match नहीं होगा क्योंकि Python String के शुरुआत में नहीं है।
|
search() |
match() |
|
पूरे String में Search करता है |
केवल शुरुआत से Match करता है |
|
Pattern कहीं भी हो सकता है |
Pattern Beginning में होना चाहिए |
fullmatch() यह सुनिश्चित करता है कि पूरा String दिए गए Pattern से Match करे।
import re
text = "Python"
result = re.fullmatch("Python", text)
if result:
print("Full Match")
यदि Text में Extra Characters होंगे तो Full Match नहीं होगा।
findall() Text में Pattern की सभी Matches को List के रूप में Return करता है।
import re
text = "Python is easy and Python is powerful"
result = re.findall("Python", text)
print(result)
Output:
['Python', 'Python']
import re
text = "I have 10 apples and 20 bananas."
numbers = re.findall(r"\d+", text)
print(numbers)
Output:
['10', '20']
finditer() सभी Matches को Iterator के रूप में देता है।
import re
text = "Python Python"
matches = re.finditer("Python", text)
for match in matches:
print(match.group(), match.start())
split() Pattern के आधार पर String को अलग-अलग Parts में बाँटता है।
import re
text = "apple,banana,orange"
result = re.split(",", text)
print(result)
Output:
['apple', 'banana', 'orange']
import re
text = "apple,banana;orange|mango"
result = re.split(r"[,;|]", text)
print(result)
Output:
['apple', 'banana', 'orange', 'mango']
sub() Pattern को किसी दूसरे Text से Replace करने के लिए उपयोग होता है।
import re
text = "I like Java"
new_text = re.sub("Java", "Python", text)
print(new_text)
Output:
I like Python
subn() Replacement के साथ यह भी बताता है कि कितने Replacements हुए।
import re
text = "cat cat cat"
result = re.subn("cat", "dog", text)
print(result)
Output:
('dog dog dog', 3)
Regular Expression में कुछ Special Characters होते हैं जिन्हें Metacharacters कहा जाता है।
प्रमुख Metacharacters:
.
^
$
*
+
?
{}
[]
\
|
()
. किसी भी एक Character को Match कर सकता है।
import re
text = "cat cot cut"
result = re.findall(r"c.t", text)
print(result)
Output:
['cat', 'cot', 'cut']
^ String के Beginning को दर्शाता है।
import re
text = "Python is powerful"
result = re.search(r"^Python", text)
print(result)
$ String के End को दर्शाता है।
import re
text = "I love Python"
result = re.search(r"Python$", text)
print(result)
* का अर्थ है कि पिछला Pattern Zero या अधिक बार आ सकता है।
import re
text = "ab abb abbb"
result = re.findall(r"ab*", text)
print(result)
+ का अर्थ है कि पिछला Pattern एक या अधिक बार आना चाहिए।
import re
text = "a aa aaa"
result = re.findall(r"a+", text)
print(result)
? का अर्थ है कि पिछला Pattern Zero या One Time आ सकता है।
import re
text = "color colour"
result = re.findall(r"colou?r", text)
print(result)
किसी Pattern की Exact Number of Occurrences के लिए।
import re
text = "123 1234 12345"
result = re.findall(r"\d{4}", text)
print(result)
Pattern कम से कम n और अधिकतम m बार।
import re
text = "12 123 1234 12345"
result = re.findall(r"\d{2,4}", text)
print(result)
a, b या c में से कोई एक Character।
import re
text = "cat bat rat"
result = re.findall(r"[cb]at", text)
print(result)
Lowercase Letters की Range।
[a-z]
Uppercase Letters की Range।
[A-Z]
Digits की Range।
[0-9]
Character Class के बाहर के Characters को Match करने के लिए।
[^0-9]
यह किसी Digit के अलावा Character को Match कर सकता है।
|
Pattern |
अर्थ |
|
\d |
Digit |
|
\D |
Non-Digit |
|
\w |
Word Character |
|
\W |
Non-Word Character |
|
\s |
Whitespace |
|
\S |
Non-Whitespace |
|
\b |
Word Boundary |
|
\B |
Non-Word Boundary |
Digit Match करने के लिए।
import re
text = "Age 25"
print(re.findall(r"\d+", text))
Output:
['25']
Word Characters Match करता है।
import re
text = "Python_123"
print(re.findall(r"\w+", text))
Whitespace Match करने के लिए।
import re
text = "Hello Python World"
print(re.findall(r"\s", text))
Regular Expressions में अक्सर Raw String का उपयोग किया जाता है।
उदाहरण:
pattern = r"\d+"
यह Backslash को सही तरीके से Pattern में इस्तेमाल करने में मदद करता है।
Practical Program 1 – Mobile Number Check
एक Basic Indian 10-digit Mobile Number Pattern:
import re
mobile = input("Enter mobile number: ")
pattern = r"^[6-9]\d{9}$"
if re.fullmatch(pattern, mobile):
print("Valid Mobile Number")
else:
print("Invalid Mobile Number")
Practical Program 2 – Email Validation
Basic Email Pattern:
import re
email = input("Enter Email: ")
pattern = r"^[\w.-]+@[\w.-]+\.\w+$"
if re.fullmatch(pattern, email):
print("Valid Email")
else:
print("Invalid Email")
यह एक Basic Validation Pattern है; Production-grade Email Validation इससे अधिक Complex हो सकती है।
Practical Program 3 – Text से सभी Numbers निकालना
import re
text = "I have 10 books, 5 pens and 2 bags."
numbers = re.findall(r"\d+", text)
print(numbers)
Practical Program 4 – केवल Words निकालना
import re
text = "Python is easy!"
words = re.findall(r"[A-Za-z]+", text)
print(words)
Practical Program 5 – Extra Spaces हटाना
import re
text = "Python is very easy"
new_text = re.sub(r"\s+", " ", text)
print(new_text)
Output:
Python is very easy
Practical Program 6 – Digits को Remove करना
import re
text = "Python123 Programming456"
result = re.sub(r"\d+", "", text)
print(result)
Practical Program 7 – Word Search
import re
text = "Python is easy to learn"
if re.search(r"\bPython\b", text):
print("Python found")
Practical Program 8 – Date Pattern निकालना
import re
text = "Exam Date: 10-08-2026"
date = re.findall(r"\d{2}-\d{2}-\d{4}", text)
print(date)
Output:
['10-08-2026']
Practical Program 9 – सभी Emails निकालना
import re
text = """
Contact: abc@gmail.com
Support: help@example.com
"""
emails = re.findall(r"[\w.-]+@[\w.-]+\.\w+", text)
print(emails)
Practical Program 10 – Text Replace करना
import re
text = "Python is difficult. Python is powerful."
result = re.sub(r"Python", "Programming", text)
print(result)
|
Pattern |
उपयोग |
|
\d+ |
एक या अधिक Digits |
|
[A-Za-z]+ |
English Words |
|
\s+ |
एक या अधिक Spaces |
|
\d{10} |
10 Digits |
|
^Python |
Python से शुरू |
|
Python$ |
Python पर समाप्त |
|
\w+ |
Word Characters |
|
\d{2}-\d{2}-\d{4} |
DD-MM-YYYY जैसा Pattern |
search(), match(), fullmatch() में अंतर
|
Function |
कार्य |
|
search() |
पूरे String में कहीं भी Search |
|
match() |
Beginning से Match |
|
fullmatch() |
पूरा String Match |
परीक्षा की दृष्टि से महत्वपूर्ण तथ्य
- Python में Regular Expression के लिए re Module का उपयोग होता है।
- search() पूरे String में Pattern खोजता है।
- match() शुरुआत से Pattern Match करता है।
- fullmatch() पूरे String को Match करता है।
- findall() सभी Matches को List में देता है।
- finditer() Match Objects का Iterator देता है।
- split() Pattern के आधार पर String विभाजित करता है।
- sub() Pattern को Replace करता है।
- subn() Replacement के साथ Replacement Count भी देता है।
- \d Digit को दर्शाता है।
- \w Word Character को दर्शाता है।
- \s Whitespace को दर्शाता है।
- + एक या अधिक बार।
- * Zero या अधिक बार।
- ? Zero या One बार।
- ^ Beginning को दर्शाता है।
- $ End को दर्शाता है।
- [] Character Class के लिए उपयोग होता है।
प्रश्न 1. Python में RegEx के लिए कौन-सा Module है?
re
प्रश्न 2. सभी Matching Values प्राप्त करने के लिए?
findall()
प्रश्न 3. Text Replace करने के लिए?
sub()
प्रश्न 4. String के Beginning से Match करने के लिए?
match()
प्रश्न 5. पूरे String को Match करने के लिए?
fullmatch()
प्रश्न 6. Digit के लिए कौन-सा Pattern है?
\d
प्रश्न 7. एक या अधिक Characters के लिए कौन-सा Quantifier है?
+
प्रश्न 8. Zero या अधिक बार के लिए?
*
- RegEx → Pattern Matching
- re → Regular Expression Module
- search() → Anywhere Search
- match() → Beginning Match
- fullmatch() → Complete Match
- findall() → All Matches
- finditer() → Match Iterator
- split() → Split Text
- sub() → Replace
- \d → Digit
- \w → Word Character
- \s → Whitespace
- + → One or More
- * → Zero or More
- ? → Zero or One
- ^ → Start
- $ → End
अगला अध्याय —Python JSON Handling
इसमें JSON क्या है, json Module, dumps(), loads(), dump(), load(), Python Dictionary ↔ JSON, JSON File Handling और Practical Programs विस्तार से होंगे।