matcher.group()
फ़ंक्शन एक पूर्णांक तर्क लेने की अपेक्षा करता है: कैप्चरिंग समूह इंडेक्स, 1 से शुरू होता है। इंडेक्स 0 विशेष है, जिसका अर्थ है "संपूर्ण मिलान"। एक कैप्चरिंग समूह कोष्ठक की एक जोड़ी "(...)
" का उपयोग करके बनाया गया है। कोष्ठक के भीतर कुछ भी कैप्चर है। समूह को बाएं से दाएं (फिर से, 1 से शुरू) से क्रमांकित किया जाता है, कोष्ठक खोलकर (जिसका अर्थ है कि समूह ओवरलैप कर सकते हैं)। चूंकि आपकी नियमित अभिव्यक्ति में कोई कंस्ट्रैसिस नहीं है, इसलिए कोई समूह नहीं हो सकता है 1.
Pattern कक्षा में जावाडोक नियमित अभिव्यक्ति वाक्यविन्यास को शामिल करता है।
यदि आप ऐसे पैटर्न की तलाश में हैं जो कई बार दोबारा शुरू हो सकता है, तो आप Matcher.
find() बार-बार झूठी वापसी तक उपयोग कर सकते हैं। प्रत्येक पुनरावृत्ति पर एक बार Matcher.group(0)
फिर उस समय से मेल खाने वाले लौट आएगा।
यदि आप एक बड़ी नियमित अभिव्यक्ति बनाना चाहते हैं जो सब कुछ एक साथ मिलती है (जो मुझे विश्वास है कि आप क्या चाहते हैं) तो उन चीजों के तीन सेटों में से प्रत्येक के आसपास जिन्हें आप कैप्चर करना चाहते हैं, कैप्चरिंग कोष्ठक का एक सेट डालें, Matcher.match()
और फिर Matcher.group(n)
का उपयोग करें जहां n क्रमश: 1, 2 और 3 है। बेशक Matcher.match()
भी झूठी वापसी कर सकता है, जिस स्थिति में पैटर्न मेल नहीं खाता है, और आप किसी भी समूह को पुनर्प्राप्त नहीं कर सकते हैं।
आपके उदाहरण में, आप शायद क्या करना चाहते हैं, यह कुछ पूर्ववर्ती पाठ से मेल खाता है, फिर कैप्चरिंग समूह शुरू करें, अंकों के लिए मिलान करें, कैप्चरिंग समूह को समाप्त करें, आदि ... मुझे आपके सटीक के बारे में पर्याप्त जानकारी नहीं है इनपुट प्रारूप, लेकिन यहां एक उदाहरण है।
Eat 12 carrots at 12:30
Take 3 pills at 01:15
और मैं मात्रा और समय निकालने के लिए चाहता था:
कहते हैं कि मैं फार्म के तार था देता है।मेरे नियमित अभिव्यक्ति कुछ ऐसा दिखाई देगा:
"\w+ (\d+) [\w ]+ (\d{1,2}:\d{2})"
कोड कुछ ऐसा दिखाई देगा:
Pattern p = Pattern.compile("\\w+ (\\d+) [\\w ]+ (\\d{2}:\\d{2})");
Matcher m = p.matcher(oneline);
if(m.matches()) {
System.out.println("The quantity is " + m.group(1));
System.out.println("The time is " + m.group(2));
}
नियमित अभिव्यक्ति "का अर्थ है एक स्ट्रिंग एक शब्द, एक जगह है, एक या अधिक संख्याएं युक्त (जो कर रहे हैं समूह 1 में कब्जा कर लिया गया), एक स्थान, शब्दों का एक सेट और अंतरिक्ष के साथ समाप्त होने वाली रिक्त स्थान, एक समय के बाद (समूह 2 में कब्जा कर लिया गया, और समय लगता है कि यह समय हमेशा 2 अंकों तक 0-गद्देदार होता है)। मैं दूंगा आप जो खोज रहे हैं उसके लिए एक करीबी उदाहरण है, लेकिन संभावित इनपुट का विवरण थोड़ा अस्पष्ट है।
क्या आप अपना कोड दिखा सकते हैं? यह 06:30 से मेल खाना चाहिए, सब कुछ प्रदान करने के क्रम में है। –