2012-10-22 11 views
9
>>> import re 
>>> s = 'this is a test' 
>>> reg1 = re.compile('test$') 
>>> match1 = reg1.match(s) 
>>> print match1 
None 

किकी में जो एस के अंत में परीक्षण से मेल खाता है। मुझे क्या याद आती है? (मैं re.compile(r'test$') की कोशिश की और साथ ही)रेगेक्स - मैच रिटर्न कोई नहीं। मैं कहाँ गलत हूँ?

उत्तर

20

उपयोग

match1 = reg1.search(s) 

बजाय। स्ट्रिंग की शुरुआत में match फ़ंक्शन केवल मैचों ... प्रलेखन here देखें।

+0

धन्यवाद, मैं इन दो परिचालनों के बीच अंतर के बारे में पूरी तरह से भूल गया :) – tetris555

+0

धन्यवाद! हालांकि इस तरह का अजीब व्यवहार() हालांकि: (( मैं आरएक्स लॉल में समस्या का पता लगाने की कोशिश कर रहा हूं, अब दो घंटे बिताता हूं – oriadam

0

आपका regex मिलान पूर्ण स्ट्रिंग नहीं है। आप अनुपयोगी के रूप में के बजाय खोज उपयोग कर सकते हैं उल्लेख किया है, या आप पूर्ण स्ट्रिंग के मिलान से अपने रेगुलर एक्सप्रेशन से बदल सकते हैं:

'^this is a test$' 

या कुछ हद तक पढ़ने के लिए कठिन है, लेकिन कुछ हद तक कम बेकार:

'^t[^t]*test$' 

यह पर निर्भर करता है आप क्या करने की कोशिश कर रहे हैं।

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