2014-08-29 12 views
6

सत्यापित करने के लिए regex मैं इस समय के प्रारूप प्रारूप को सत्यापित करना चाहता हूं जो '2014-08-29T06: 44: 03Z' जैसा है, मैं इसके लिए एक पूर्व पूर्व की तलाश में हूं।यूटीसी दिनांक समय प्रारूप

कुछ संयोजनों का प्रयास किया लेकिन वे मेरे लिए काम नहीं करते थे।

उत्तर

7

इस regex

\b[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z\b 

वहाँ का प्रयास करें:

\b - क्या उदाहरण के लिए ': 44: 92014-08-29T06 03Z' जांच करने के लिए शब्द सीमा, अमान्य है

[0-9]{n} - एन अंकों के साथ मिलान संख्या

यदि किसी स्ट्रिंग में केवल दिनांक-समय और कोई अन्य वर्ण नहीं होना चाहिए, फिर उपयोग करें:

^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ 
0

रिम्स उत्तर निश्चित रूप से काम करेगा, यहां कुछ और उदाहरण दिए गए हैं।

एक छोटे से अधिक संक्षिप्तता:

\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z 

एक छोटे से अधिक सटीक:

\d{4}-[01]{1}\d{1}-[0-3]{1}\d{1}T[0-2]{1}\d{1}:[0-6]{1}\d{1}:[0-6]{1}\d{1}Z 
बेशक

, तो आप और अधिक उन्नत भाव है कि वास्तव में करने के लिए संदर्भित आगे का उपयोग करने और वापस इस से अधिक प्रभावी हैं लिख सकते हैं सुनिश्चित करें कि आप, स्वीकार्य संयोजन के लिए एक 100% मान्य मैच आदि ...

+0

यह काम करता है .. धन्यवाद gmiley और rims –

2

निम्नलिखित regex एक आईएसओ 8601 यूटीसी दिनांक समय सुनिश्चित स्ट्रिंग स्वीकार करता है:

प्रारूप: YYYY-MM-DDThh: mm: ssZ
उदाहरण: 2016-07-08T12: 30: 00Z

जहां:
YYYY = 0000 करने के लिए 9999
एम एम = 01 करने के लिए 12
डीडी = 01 के लिए 31
hh = 00 23
मिमी = 00 59 के लिए
एस एस = 00 59

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\dZ 
करने के लिए करने के लिए

आप इसे यहां देख सकते हैं: https://regex101.com/r/jE4cE4/1

संबंधित मुद्दे