मैं एक स्ट्रिंग जावास्क्रिप्ट के साथ regex का उपयोग करने से सभी संभावित मिलान प्राप्त करने के लिए कोशिश कर रहा हूँ हर संभव मिलान खोजें। ऐसा प्रतीत होता है कि ऐसा करने की मेरी विधि स्ट्रिंग के उन हिस्सों से मेल नहीं खा रही है जो पहले ही मेल खा चुके हैं।जावास्क्रिप्ट Regex - यहां तक कि पहले से ही कब्जा कर लिया से मेल खाता है
चर:
var string = 'A1B1Y:A1B2Y:A1B3Y:A1B4Z:A1B5Y:A1B6Y:A1B7Y:A1B8Z:A1B9Y:A1B10Y:A1B11Y';
var reg = /A[0-9]+B[0-9]+Y:A[0-9]+B[0-9]+Y/g;
कोड:
var match = string.match(reg);
सभी मिलान परिणाम मैं:
A1B1Y:A1B2Y
A1B5Y:A1B6Y
A1B9Y:A1B10Y
मेल खाने वाले परिणाम मैं चाहता हूँ:
A1B1Y:A1B2Y
A1B2Y:A1B3Y
A1B5Y:A1B6Y
A1B6Y:A1B7Y
A1B9Y:A1B10Y
A1B10Y:A1B11Y
मेरे सिर में, मैं A1B1Y:A1B2Y
A1B2Y:A1B3Y
के साथ एक मैच होने के लिए चाहता हूं, भले ही A1B2Y
स्ट्रिंग में दो मैचों का हिस्सा बनने की आवश्यकता होगी।
एक लुकहेड आपको वह मैच मिलेगा जो आप चाहते हैं, लेकिन दुर्भाग्य से यह लुकहेड का हिस्सा वापस नहीं लौटाता है। मुझे जावास्क्रिप्ट के साथ लुकहेड कैप्चर करने का कोई तरीका नहीं मिला है। शायद वहाँ है, पता नहीं है। लुकहेड के साथ आपका रेगेक्स होगा: var reg =/a [0-9] + बी [0-9] + वाई (? =: ए [0-9] + बी [0-9] + वाई)/जी; – Someone
@ मंट्रियूर: मेरा उत्तर देखें ... – nhahtdh
शायद 'string.split (": ") 'और फिर सरणी पर लूपिंग आपको बेहतर परिणाम दे सकता है। – Bergi