की नई लाइन या अंत के मिलान के लिए सही रेगेक्स वाक्यविन्यास नहीं मिल रहा है यह वास्तव में एक साधारण प्रश्न की तरह लगता है, लेकिन मुझे कहीं भी जवाब नहीं मिल रहा है।स्ट्रिंग
(नोट:। मैं अजगर का उपयोग कर रहा है, लेकिन इस में कोई फर्क नहीं होना चाहिए):
s = "foo\nbar\nfood\nfoo"
मैं बस एक regex कि मिलान कर देंगे खोजने की कोशिश कर रहा हूँ
मैं निम्नलिखित स्ट्रिंग है कहो "फू" के दोनों उदाहरण, लेकिन "भोजन" नहीं, इस तथ्य के आधार पर कि "भोजन" में "foo" तुरंत या तो नई लाइन या स्ट्रिंग के अंत के बाद नहीं होता है।
यह शायद मेरे प्रश्न को व्यक्त करने का एक अत्यधिक जटिल तरीका है, लेकिन यह काम करने के लिए कुछ ठोस बनाता है। परिणाम के साथ (नोट: परिणाम मैं चाहता हूं [foo\n
, foo
] है):
यहाँ, बातें मैं कोशिश की है में से कुछ हैं
foo[\n\Z]
=> ['foo\n'
]
foo(\n\Z)
=> ['\n'
, ''
] < = यह न्यू लाइन और EOS मैच के लिए लगता है, लेकिन नहीं foo
foo($|\n)
=> ['\n'
, ''
]
(foo)($|\n)
=> [(foo
, '\n'
), (foo
, ''
)] < = लगभग हो गया है, और यह एक उपयोगी योजना बी है, लेकिन मैं सही समाधान खोजने के लिए चाहते हैं।
केवल एक चीज मैंने पाया कि काम करता है:
foo$|foo\n
=> ['foo\n'
, ` 'foo']
इस तरह के एक सरल उदाहरण के लिए ठीक है, लेकिन यह कैसे यह देखना आसान है एक बहुत बड़ी अभिव्यक्ति के साथ अनावश्यक हो सकता है (और हाँ, यह foo
चीज वास्तव में उपयोग की जा रही बड़ी अभिव्यक्ति के लिए एक स्टैंड है)।
अलग दिलचस्प:, मैं बस स्थानापन्न सकता है मेरी 'विशिष्ट चरित्र' के लिए \n
In regex, match either the end of the string or a specific character
यहाँ: निकटतम तो सवाल मैं अपने समस्या के लिए मिल सकता है इस से एक था। अब, स्वीकृत उत्तर regex /(&|\?)list=.*?(&|$)/
का उपयोग करता है। मैंने देखा कि ओपी जावास्क्रिप्ट का उपयोग कर रहा था (प्रश्न javascript
टैग के साथ टैग किया गया था), इसलिए शायद जावास्क्रिप्ट रीगेक्स दुभाषिया अलग है, लेकिन जब मैं पाइथन में उपरोक्त रेगेक्स के साथ प्रश्न में दिए गए सटीक तारों का उपयोग करता हूं, तो मुझे खराब परिणाम मिलते हैं:
>>> findall("(&|\?)list=.*?(&|$)", "index.php?test=1&list=UL")
[('&', '')]
>>> findall("(&|\?)list=.*?(&|$)", "index.php?list=UL&more=1")
[('?', '&')]
तो, मैं स्टंप हो गया हूं।
क्या आप [re.MULTILINE] (http://docs.python.org/2/library/re.html) के बारे में जानते हैं? –
हां, और मुझे पता है कि यह मेरे लिए पायथन में काम करेगा, लेकिन मैं एक भाषा अज्ञेय समाधान ढूंढना चाहता हूं। –