2011-12-22 17 views
23

मान लीजिए कि मैं एक नियमित अभिव्यक्ति चाहता हूं जो "मेरे आईफोन से भेजा गया" और "मेरे आईपॉड से भेजा गया" दोनों से मेल खाता हो। मैं ऐसी अभिव्यक्ति कैसे लिखूं?पायथन नियमित अभिव्यक्तियां या

मैं जैसी चीजों की कोशिश की:

re.compile("Sent from my [iPhone]|[iPod]") 

लेकिन काम करने के लिए प्रतीत नहीं होता।

+1

लग रहा है जैसे कि आप मूल बातें पर ब्रश करके बहुत लाभ उठाएंगे। देखें: [पायथन नियमित अभिव्यक्ति हाउटो] (http://docs.python.org/dev/howto/regex.html) और/या [नियमित-expressions.info] (http://www.regular-expressions.info/)। – ridgerunner

उत्तर

43
re.compile("Sent from my (iPhone|iPod)") 
+21

या यहां तक ​​कि "मेरे आईपी से भेजा गया है::? होन | [एओ] डी)", जिसमें आईपैड भी शामिल है। –

+0

यह कैसे काम कर रहा है? आउटपुट है: आउट [25]: ['आईफोन'] – lapinkoira

+6

@ लैपिंकोइरा क्या उत्पादन? क्या आपको सच में लगता है कि यह एक कम वोट वारंट करता है जब यह उस व्यक्ति के लिए काम करता है जिसने प्रश्न पूछा और हर कोई जो इसे मिला, लेकिन यह उस विशिष्ट तरीके से काम नहीं करता जिसका आप इसका उपयोग कर रहे हैं जिसका मूल प्रश्न से कोई लेना देना नहीं है ? – Paulpro

15
re.compile("Sent from my (?:iPhone|iPod)") 

के मेल खाने पर कब्जा करने के लिए की जरूरत है, ?: को हटा दें।

FYI करें, अपने regex क्योंकि आप मैं से बाहर एक चरित्र के लिए परीक्षण कर रहे हैं काम नहीं किया, पी, एच, ओ, एन, ई या मैं की, पी, ओ, घ बाहर एक चरित्र ..

+2

नहीं, वे "मेरे से भेजे गए" और उसके बाद वर्णों में से एक, पी, एच, ओ, एन, या ई के लिए परीक्षण कर रहे हैं; या पात्रों में से एक I, पी, ओ, या डी। OR के लिए लंबवत बार शीर्षतम दायरा है, और बाईं ओर की तरफ "मेरे से भेजा गया है" लेकिन दाएं हाथ की ओर नहीं है। – PaulMcG

+0

यह स्वीकार्य उत्तर होना चाहिए – lapinkoira

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