re.matchस्ट्रिंग की शुरुआत में लंगर डाला गया है। इसका newlines से कोई लेना-देना नहीं है, इसलिए यह ^पैटर्न में उपयोग करने के समान नहीं है ।
जैसा कि re.match प्रलेखन कहता है:
यदि स्ट्रिंग की शुरुआत में शून्य या अधिक वर्ण
नियमित अभिव्यक्ति पैटर्न से मेल खाते हैं, तो इसी MatchObjectउदाहरण को वापस करें । Noneयदि स्ट्रिंग पैटर्न से मेल नहीं खाती है तो वापस लौटें ; ध्यान दें कि यह एक शून्य-लंबाई मैच से अलग है।
नोट: यदि आप स्ट्रिंग में कहीं भी मैच का पता लगाना चाहते हैं, तो search()
इसके बजाय उपयोग करें ।
re.searchसंपूर्ण स्ट्रिंग खोजता है, जैसा कि दस्तावेज़ कहता है :
स्ट्रिंग के माध्यम से स्कैन एक ऐसे स्थान की तलाश में जहां नियमित अभिव्यक्ति पैटर्न एक मैच का निर्माण करता है, और इसी MatchObjectउदाहरण को वापस लौटाता है । Noneस्ट्रिंग में कोई स्थिति पैटर्न से मेल खाती है तो वापस लौटें ; ध्यान दें कि यह स्ट्रिंग में कुछ बिंदु पर एक शून्य-लंबाई मैच खोजने से अलग है।
तो अगर आपको स्ट्रिंग की शुरुआत में मिलान करने की आवश्यकता है, या पूरे स्ट्रिंग उपयोग से मिलान करने की आवश्यकता है match। यह तेज है। अन्यथा उपयोग करें search।
दस्तावेज़ीकरण में बनाम के लिएmatchsearch एक विशिष्ट खंड होता है जिसमें बहुस्तरीय तार भी शामिल होते हैं:
पायथन नियमित अभिव्यक्ति के आधार पर दो अलग-अलग आदिम संचालन प्रदान matchकरता है
: केवल स्ट्रिंग की शुरुआत में searchएक मैच की जांच करता है , जबकि स्ट्रिंग में कहीं भी एक मैच की जांच करता है
(यह वही है जो पर्ल डिफ़ॉल्ट रूप से करता है)।
ध्यान दें कि
एक नियमित अभिव्यक्ति का उपयोग करते समय भी matchइससे भिन्न हो सकते हैं : केवल स्ट्रिंग की शुरुआत में मेल खाता है, या
मोड में भी तुरंत एक नई पंक्ति का अनुसरण करता है। " " ऑपरेशन सफल होता है पर केवल तभी पैटर्न मैचों शुरू स्ट्रिंग के
मोड की परवाह किए बिना, या वैकल्पिक द्वारा दिए गए प्रारंभिक स्थिति में
है कि क्या एक नई पंक्ति पछाड़ यह की परवाह किए बिना तर्क।search'^''^'MULTILINEmatchpos
अब, पर्याप्त बात करते हैं। कुछ उदाहरण कोड देखने का समय:
# 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