बदलें मैं विभिन्न शब्दों के लिए एक स्ट्रिंग खोज करने के लिए, जब मैं एक मिल जाए, मैं 3 भागों (छोड़ दिया, मैच, दाएं), मिलान वाला पाठ में उस बिंदु पर स्ट्रिंग विभाजित करना चाहते हैं सक्षम होने के लिए चाहते हैं बाहर रखा जाएगा, और प्रक्रिया नई स्ट्रिंग बाएं + दाएं के साथ जारी रहेगी।स्ट्रिंग का पता लगाएं/एल्गोरिथ्म
अब, एक बार मैं अपने सभी मैचों किया है, मैं बात वे हटा दिया गया पर मिलान किया शब्द (या उनके लिए एक प्रतिस्थापन) पुन: लगाने प्रक्रिया को उल्टा करने की जरूरत है। मैंने कभी भी मेरी किसी भी खोज में जो कुछ भी नहीं खोजा है, मैंने सोचा कि मैं यहां SO इनपुट पर पूछूंगा।
कृपया मुझे बताएं कि क्या इस प्रश्न को और विवरण चाहिए।
बीटीडब्ल्यू - फिलहाल, मेरे पास एक बहुत ही खराब एल्गोरिदम है जो एक अद्वितीय स्ट्रिंग टोकन के साथ मिलान किए गए टेक्स्ट को प्रतिस्थापित करता है, और फिर सभी मैचों के बाद उचित मिलान के लिए प्रतिस्थापन टेक्स्ट के साथ टोकन को प्रतिस्थापित करता है।
one two three four five six
मैच "तीन" foo के साथ बदलें (याद हम तीन पाया, और जहाँ हम यह पाया)
one two four five six
|
three
मैच "दो से चार" और यह को रोकने:
यह लक्ष्य है किसी भी चीज़ से मिलान (स्पष्टता के लिए संपादित)
one five six
|
two four
|
three
इस बिंदु पर, आप उदाहरण के लिए मेल नहीं खा सकते हैं " ई दो "
सभी मैचोंपाए गए हैं, अब उनके प्रतिस्थापन वापस रख (उलटे क्रम में)
one two four five six
|
three
one two foo four five six
फ़ायदा क्या है? एक मैच के प्रतिस्थापन पाठ को किसी अन्य पैटर्न से मिलान करने से रोकना।
(सभी पैटर्न एक ही समय में और है कि संसाधित किया जाता है हर स्ट्रिंग के लिए एक ही क्रम में चलाए जा रहे हैं) मुझे यकीन है कि भाषा मामलों नहीं कर रहा हूँ, लेकिन मैं इस मामले में लुआ उपयोग कर रहा हूँ।
मैं फिर से प्रयास करने की कोशिश करूंगा, मेरे पास पैटर्न की एक सूची है जो मैं किसी दिए गए स्ट्रिंग में ढूंढना चाहता हूं, अगर मुझे कोई मिल जाए, तो मैं स्ट्रिंग के उस भाग को हटाना चाहता हूं, इसलिए यह किसी और चीज से मेल नहीं खाता है, लेकिन मैं चाहता हूं जहां मैं यह पाया का ट्रैक रखने के तो मैं प्रतिस्थापन पाठ वहाँ सम्मिलित कर सकते हैं एक बार मैं पैटर्न
यहाँ एक संबंधित सवाल है की मेरी सूची से मेल करने की कोशिश कर किया हूँ:
Shell script - search and replace text in multiple files using a list of strings
भाषा? फ्रेमवर्क? –
तो एल्गोरिदम पूरा होने के बाद, स्ट्रिंग बस उतनी ही है जितनी आपने छोड़ी? आपको तारों को पहली जगह में हटाने की आवश्यकता क्यों है? आप इसके परिणाम के साथ * क्या कर रहे हैं? एक आसान समाधान हो सकता है। कृपया आप जिस भाषा का उपयोग कर रहे हैं उसे पोस्ट करें। –
बाएं + दाएं के साथ जारी रखने का आपका क्या मतलब है? कहें कि मूल पाठ "abcdefgh" था, और आपके दो 'शब्द' "सीडी" और "बीएफ" हैं, क्या आप पहले "ab" - "cd" - "efgh" में विभाजित होंगे, और फिर "abefgh" में खोजें, और "बीएफ" ढूंढें, और "ए" - "बीएफ" - "gh" में विभाजित करें और फिर "agh" के साथ जारी रखें, और कुछ भी नहीं ढूंढें? –