मैं आवश्यकता पर काम कर रहा है में मिलान पर कब्जा नहीं है और मैं निम्न स्ट्रिंग पर एक regex बनाने की जरूरत:Regex उम्मीद समूहों
startDate:[2016-10-12T12:23:23Z:2016-10-12T12:23:23Z]
इस स्ट्रिंग के कई रूपों के रूप में निम्नानुसार हो सकता है:
startDate:[*;2016-10-12T12:23:23Z]
startDate:[2016-10-12T12:23:23Z;*]
startDate:[*;*]
startDate
उपरोक्त अभिव्यक्ति में एक महत्वपूर्ण नाम है जो एंडडेट, अपडेटडेट आदि जैसी कुछ भी हो सकती है जिसका अर्थ है कि हम अभिव्यक्ति में हार्डकोड नहीं कर सकते हैं। कुंजी नाम किसी भी शब्द है, हालांकि [a-zA-Z_0-9]*
मैं निम्नलिखित संकलित पैटर्न
Pattern.compile("([[a-zA-Z_0-9]*):(\\[[[\\*]|[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[Z]];[[\\*]|[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[Z]]\\]])");
नमूने का मिलान उपयोग कर रहा हूँ के रूप में स्वीकार किया जा सकता है लेकिन द्वारा बनाए गए समूह मैं क्या उम्मीद नहीं कर रहे हैं।
(startDate):([*:2016-10-12T12:23:23Z])
group1 = "startDate"
group2 = "[*;2016-10-12T12:23:23Z]"
आप कृपया मुझे जावा और समूहों में सही अभिव्यक्ति के साथ मदद कर सकता है: मैं नीचे कोष्ठक से घिरा समूह चाहते हैं?
'लेकिन बनाए गए समूह मेरी अपेक्षा नहीं करते हैं। '... वर्तमान समूह क्या हैं? –
dateMatcher.group (0) = "s" dateMatcher.group (1) = "s" @TimBiegeleisen – Vishal
'startDate: [*: *]' क्या आप इसे थोड़ा सा संकीर्ण कर सकते हैं? यदि आप वहां कुछ भी स्वीकार करेंगे तो कोलन के दोनों तरफ टाइमस्टैम्प की जांच करने का कोई मतलब नहीं है। –