2011-07-04 25 views

उत्तर

69

Match वस्तुओं हमेशा सच हो रहा है, और अगर वहाँ कोई मुकाबला नहीं है None दिया जाता है। बस सत्यता के लिए परीक्षण करें।

if re.match(...): 
+12

re.match (...) स्ट्रिंग का प्रारंभिक भाग नियमित पैटर्न से मेल खाता है तो रैपिंग सच हो जाएगा। जबकि खोज स्ट्रिंग में कहीं भी पैटर्न की पुष्टि करेगी। –

+2

're.match (...) का उपयोग करने के लिए यह और अधिक वांछनीय हो सकता है:' ' – NuclearPeon

+0

क्षमा करें, क्या आपने अपने उत्तर में टिप्पणियों को संबोधित किया? यह मेरे लिए अस्पष्ट है, क्या आप स्पष्टीकरण पर ध्यान देते हैं? –

5

इग्नासिओ वाज़्यूज़-एब्राम सही है। लेकिन विस्तृत करने के लिए, re.match() या तो कोई भी वापस नहीं लौटाएगा, जो झूठी, या एक मैच ऑब्जेक्ट का मूल्यांकन करता है, जो हमेशा कहा जाएगा। केवल तभी यदि आप अपनी नियमित अभिव्यक्ति से मेल खाने वाले भाग (भाग) के बारे में जानकारी चाहते हैं तो आपको मैच ऑब्जेक्ट की सामग्री को देखना होगा।

4

ऐसा करने का एक तरीका सिर्फ वापसी मूल्य के खिलाफ परीक्षण करना है। क्योंकि आपको <_sre.SRE_Match object at ...> मिल रहा है इसका मतलब है कि यह सत्य का मूल्यांकन करेगा। जब नियमित अभिव्यक्ति मेल नहीं खाती है तो आप वापसी मूल्य नहीं करेंगे, जो झूठे का मूल्यांकन करता है।

import re 

if re.search("c", "abcdef"): 
    print "hi" 

आउटपुट के रूप में hi का उत्पादन करता है।

+0

आप * हमेशा * वापसी मूल्य प्राप्त करते हैं; यदि कोई भी स्पष्ट रूप से वापस नहीं आया है तो 'कोई नहीं' डिफ़ॉल्ट है। –

+0

धन्यवाद - इसे सही किया गया। मैं बस आरपीएल में जो देखा वह जा रहा था। –

79

तुम सच में True या False की जरूरत है, बस bool

>>> bool(re.search("hi", "abcdefghijkl")) 
True 
>>> bool(re.search("hi", "abcdefgijkl")) 
False 

का उपयोग के रूप में अन्य उत्तर, ने बताया है यदि आपने अभी कोई if या while के लिए एक शर्त के रूप में यह प्रयोग कर रहे हैं, तो आप इसे बिना सीधे उपयोग कर सकते हैं bool()

+0

'बूल' मान की आवश्यकता होती है जब सशर्त बयान में बूलियन अंकगणितीय ऑपरेशन होता है। उदाहरण: यदि (re.search ("a", "abc") और True): –

+1

@AizzatSuhardi, '&' एक ** bitwise ** ऑपरेशन है। 'और' ** बूलियन ** ऑपरेशन होगा। –

+0

धन्यवाद @ जॉन लोरायॉय। सुधार: '(re.search (" a "," abc ") और True)' –

संबंधित मुद्दे