कल्पना कीजिए कि हमारे पास एक लंबी स्ट्रिंग है जिसमें सबस्ट्रिंग्स 'बिल्ली' और 'कुत्ते' के साथ-साथ अन्य यादृच्छिक वर्ण भी शामिल हैं।स्ट्रिंग पैटर्न मिलान समस्या
cat x dog cat x cat x dog x dog x cat x dog x cat
यहां 'एक्स' वर्णों के किसी भी यादृच्छिक अनुक्रम का प्रतिनिधित्व करता है (लेकिन 'बिल्ली' या 'कुत्ता' नहीं)।
मैं जो करना चाहता हूं उसे 'कुत्ते' और उसके बाद 'बिल्ली' को छोड़कर किसी भी पात्र द्वारा पीछा किया जाता है। मैं प्रत्येक मामले में 'बिल्ली' के पहले उदाहरण को हटाना चाहता हूं।
इस मामले में, मैं कोष्ठकों के भीतर [बिल्ली] निकालना चाहते हैं नहीं अगले 'बिल्ली' इससे पहले कि यह करने के बाद 'कुत्ता' है क्योंकि:
cat x dog x cat x dog x dog x cat x dog x cat
:
cat x dog [cat] x cat x dog x dog x cat x dog x cat
के साथ समाप्त करने के लिए
यह कैसे किया जा सकता है?
मैं किसी भी तरह (एन) (? = (एन)) की तरह रेगुलर एक्सप्रेशन के उपयोग के बारे में सोचा के रूप में VonC सिफारिश here
(cat)(?=(.*cat))
स्ट्रिंग में 'बिल्ली' के जोड़े का मिलान हो। लेकिन मुझे अभी भी यकीन नहीं है कि मैं प्रत्येक बिल्ली को हटाने के लिए इसका उपयोग कैसे कर सकता हूं जिसे 'बिल्ली' से पहले 'कुत्ते' के बाद नहीं किया जाता है।
वास्तविक समस्या जिसका मैं सामना कर रहा हूं वह जावा में है। लेकिन मैं वास्तव में सिर्फ एक सामान्य छद्म कोड/रेगेक्स समाधान की तलाश में हूं।
हाय। यह जानना उपयोगी होगा कि आप किस भाषा में काम कर रहे हैं। –
@klausbyskov: क्या आप उस संपादन के बारे में निश्चित हैं? निम्नलिखित दो वाक्य और उदाहरण मुझे यह इंगित करने के लिए प्रतीत होता है कि "पीछा" वास्तव में उसका मतलब था। –
मेरा मतलब था 'पीछा' पहले नहीं था! – nodmonkey