मिलान पैटर्न मैं सभी इनपुट स्ट्रिंग है कि दिए गए पैटर्न से मेल में सबस्ट्रिंग पाने के लिए कोशिश कर रहा हूँ।जावा पुनरावर्ती (?) दोहराया (?) गहरी (?)
उदाहरण के लिए,
को देखते हुए स्ट्रिंग: aaxxbbaxb
पैटर्न: एक [az] {0.3} ख
(क्या मैं वास्तव में व्यक्त करना चाहता हूँ है: सभी पैटर्न है कि एक साथ शुरू होता है और साथ समाप्त होता है
aaxxb: सूचकांक 0 ~ 4
axxb: सूचकांक 1 ~ 4
ख है, लेकिन उन दोनों के बीच में अप करने के लिए 2 अक्षर)
सटीक परिणाम है कि मैं चाहता हूँ (उनके अनुक्रमित के साथ) हो सकता हैaxxbb: सूचकांक 1 ~ 5
axb: सूचकांक 6 ~ 8
लेकिन जब मैंने उसे Pattern.compile()
और Matcher.find()
का उपयोग कर पैटर्न और Matcher कक्षाओं के माध्यम से चलाने के लिए, यह केवल मुझे देता है:
aaxxb: सूचकांक 0 ~ 4
धुरी: सूचकांक 6 ~ 8
यह मेरे द्वारा उपयोग किए जाने वाले कोड का टुकड़ा है।
Pattern pattern = Pattern.compile("a[a-z]{0,3}b", Pattern.CASE_INSENSITIVE);
Matcher match = pattern.matcher("aaxxbbaxb");
while (match.find()) {
System.out.println(match.group());
}
मैं स्ट्रिंग है कि पैटर्न से मेल खाता है की हर एक टुकड़ा कैसे प्राप्त कर सकते हैं?
बेशक, यह के रूप में यह कुशल :) है, पैटर्न और Matcher वर्गों का उपयोग करने की जरूरत नहीं है जब तक
आपके यहां 'a [a-z]। {0,2} b' में डॉट क्यों है? यदि आप पाटर 'a_b' रखना चाहते हैं जहां '_' 0-2 वर्णमाला वर्ण हो सकता है तो बिंदु वहां गलत है, है ना? – user219882
'एएक्सएक्सबीबी' एक स्ट्रिंग कैसा है जो बी के साथ शुरू होता है और समाप्त होता है "और * के बीच * दो अक्षर हो सकते हैं? – jmg
धन्यवाद टॉम और जेएमजी इंगित करने के लिए !!! मैंने मूल पोस्ट संपादित किया। – cnc4ever