चलो कहते हैं कि मैं एक स्ट्रिंग करते हैं:Powershell Regex - वैकल्पिक नाम वाले समूह से मेल खाता है
$string1 = "Hello_World:How, are, you:-all -is -well"
मैं स्ट्रिंग पेट के से अलग नामित समूहों में से अनुभाग से मिलान करने के लिए एक regex का उपयोग करना चाहते हैं। उदाहरण के लिए:
$pattern = "(?<first>.*)\:(?<second>.*)\:(?<third>.*)"
यह $ पैटर्न $ string1 सफलतापूर्वक मेल खाएगा और मैं निम्नलिखित मैचों के साथ खत्म हो जाएगा:
first=Hello_World
second=How, are, you
third=-all -is -well
यह अच्छा है, लेकिन वहाँ एक समस्या है। $ String1 संभावित तीसरे खंड गायब किया जा सकता है, उदाहरण के लिए:
$string1 = "Hello_World:How, are, you"
दुर्भाग्य से, यह $ string1 नहीं रह गया है regex नमूने का मिलान। मैं इसे कैसे बना सकता हूं ताकि पैटर्न स्ट्रिंग के दोनों प्रारूपों से मेल खा सके? (यानी मुझे हमेशा "पहला" और "दूसरा" मैच होना चाहिए, और केवल एक "तीसरा" मैच प्रदान किया जाना चाहिए)।
हाँ, है कि और अधिक सरल है। हालांकि, मैं इसे तब तक +1 देने में संकोच करता हूं जब तक ओपी पुष्टि करता है कि अलग-अलग हिस्सों में _do not_ में ':' नहीं है - यह नहीं कि मेरा समाधान सही तरीके से इसे संभालता है, हे। – fge