मैं सिर्फ कैसे regex के उपयोग करने के लिए सीख रहा हूँ:Regex सर्वोत्तम प्रथाओं
मुझे लगता है कि दो अलग-अलग तरह की वर्गों में विभाजित है एक पाठ फ़ाइल, <:==]:>
और <:==}:>
द्वारा सीमांकन में पढ़ रहा हूँ। मैं क्या यह एक ]
या }
, तो मैं बस नहीं कर सकते
pattern.compile("<:==]:>|<:==}:>"); pattern.split(text)
ऐसा है प्रत्येक अनुभाग के लिए पता करने की जरूरत:
pattern.compile("<:=="); pattern.split(text)
काम करता है, और फिर मैं सिर्फ पहले चार देख सकते हैं प्रत्येक स्ट्रिंग में है, लेकिन यह मेरे लिए खराब लगता है, और मुझे लगता है कि मैं सिर्फ यह का सहारा रहा हूँ क्योंकि मैं पूरी तरह से कुछ मैं regex के बारे में समझ की जरूरत है लोभी नहीं कर रहा हूँ:
यहाँ क्या सबसे अच्छा अभ्यास हो सकता है? साथ ही, परिणामी तारों में डेलीमीटर छोड़ते समय स्ट्रिंग को विभाजित करने का कोई तरीका है- जैसे कि प्रत्येक डिलीमीटर के साथ शुरू होता है?
संपादित करें: फ़ाइल इस तरह से बाहर रखा जाता है:
Old McDonald had a farm
<:==}:>
EIEIO. And on that farm he had a cow
<:==]:>
And on that farm he....
मेरे प्रारंभिक समाधान (एक कैप्चरिंग समूह में सीमांकक enclosing) (अजगर की तरह अन्य भाषाओं में काम किया है |) जावा में काम करने के लिए नहीं है, इसलिए मैं इस पर पुनर्विचार करने की जरूरत है। क्या आप एक छोटी नमूना फ़ाइल प्रदान कर सकते हैं? मुझे पूरा यकीन नहीं है कि मैं समझता हूं कि वास्तव में खंड कैसे सीमित हैं। क्या वे delimiters के जोड़े से घिरे हैं, या एक खंड एक delimiter के बाद शुरू होता है और अगले delimiter के साथ खत्म होता है? –
@TimPietzcker हाँ, मुझे वही अहसास था। फ़ाइल के रखे गए तरीके के उदाहरण के लिए मेरा संपादन देखें। वे डेलीमीटर के जोड़े नहीं हैं, प्रत्येक का अंत अगले की शुरुआत से संकेत मिलता है। साथ ही, मुझे ध्यान रखना चाहिए कि <:?:> कई अन्य प्रकार के टैग – drewmoore
को इंगित करता है तो आप आउटपुट के रूप में वास्तव में क्या चाहते हैं? पाठ का अनुभाग या तो '' '' या '}' के साथ? यदि ऐसा है तो आप पहले/आखिरी खंड के लिए क्या चाहते हैं जो सीमित नहीं है? क्या आपको पाठ के अनुभाग की आवश्यकता है या क्या यह केवल डिलीमीटर करने के लिए पर्याप्त है? – OGHaza