re.match
स्ट्रिंग की शुरुआत में लंगर डाला गया है। इसका newlines से कोई लेना-देना नहीं है, इसलिए यह ^
पैटर्न में उपयोग करने के समान नहीं है ।
जैसा कि re.match प्रलेखन कहता है:
यदि स्ट्रिंग की शुरुआत में शून्य या अधिक वर्ण
नियमित अभिव्यक्ति पैटर्न से मेल खाते हैं, तो इसी MatchObject
उदाहरण को वापस करें । None
यदि स्ट्रिंग पैटर्न से मेल नहीं खाती है तो वापस लौटें ; ध्यान दें कि यह एक शून्य-लंबाई मैच से अलग है।
नोट: यदि आप स्ट्रिंग में कहीं भी मैच का पता लगाना चाहते हैं, तो search()
इसके बजाय उपयोग करें ।
re.search
संपूर्ण स्ट्रिंग खोजता है, जैसा कि दस्तावेज़ कहता है :
स्ट्रिंग के माध्यम से स्कैन एक ऐसे स्थान की तलाश में जहां नियमित अभिव्यक्ति पैटर्न एक मैच का निर्माण करता है, और इसी MatchObject
उदाहरण को वापस लौटाता है । None
स्ट्रिंग में कोई स्थिति पैटर्न से मेल खाती है तो वापस लौटें ; ध्यान दें कि यह स्ट्रिंग में कुछ बिंदु पर एक शून्य-लंबाई मैच खोजने से अलग है।
तो अगर आपको स्ट्रिंग की शुरुआत में मिलान करने की आवश्यकता है, या पूरे स्ट्रिंग उपयोग से मिलान करने की आवश्यकता है match
। यह तेज है। अन्यथा उपयोग करें search
।
दस्तावेज़ीकरण में बनाम के लिएmatch
search
एक विशिष्ट खंड होता है जिसमें बहुस्तरीय तार भी शामिल होते हैं:
पायथन नियमित अभिव्यक्ति के आधार पर दो अलग-अलग आदिम संचालन प्रदान match
करता है
: केवल स्ट्रिंग की शुरुआत में search
एक मैच की जांच करता है , जबकि स्ट्रिंग में कहीं भी एक मैच की जांच करता है
(यह वही है जो पर्ल डिफ़ॉल्ट रूप से करता है)।
ध्यान दें कि
एक नियमित अभिव्यक्ति का उपयोग करते समय भी match
इससे भिन्न हो सकते हैं : केवल स्ट्रिंग की शुरुआत में मेल खाता है, या
मोड में भी तुरंत एक नई पंक्ति का अनुसरण करता है। " " ऑपरेशन सफल होता है पर केवल तभी पैटर्न मैचों शुरू स्ट्रिंग के
मोड की परवाह किए बिना, या वैकल्पिक द्वारा दिए गए प्रारंभिक स्थिति में
है कि क्या एक नई पंक्ति पछाड़ यह की परवाह किए बिना तर्क।search
'^'
'^'
MULTILINE
match
pos
अब, पर्याप्त बात करते हैं। कुछ उदाहरण कोड देखने का समय:
# example code:
string_with_newlines = """something
someotherthing"""
import re
print re.match('some', string_with_newlines) # matches
print re.match('someother',
string_with_newlines) # won't match
print re.match('^someother', string_with_newlines,
re.MULTILINE) # also won't match
print re.search('someother',
string_with_newlines) # finds something
print re.search('^someother', string_with_newlines,
re.MULTILINE) # also finds something
m = re.compile('thing$', re.MULTILINE)
print m.match(string_with_newlines) # no match
print m.match(string_with_newlines, pos=4) # matches
print m.search(string_with_newlines,
re.MULTILINE) # also matches