देखें यह क्या मेल खाता है:
public static void main(String[] args) throws Exception {
Pattern pat = Pattern.compile("(?<!function)\\w+");
Matcher mat = pat.matcher("function example");
while (mat.find()) {
System.out.println(mat.group());
}
}
आउटपुट:
function
xample
तो सबसे पहले यह function
पाता है, जो "function
" से पहले नहीं है। फिर यह xample
पाता है जो function e
से पहले है और इसलिए "function
" नहीं है।
मुमकिन है आप पैटर्न पूरे पाठ मैच के लिए ही नहीं, मैचों पाठ में लगता है चाहता हूँ।
आप Matcher.matches()
के साथ ऐसा कर सकते हैं या आप प्रारंभ और अंत एंकर को जोड़ने के लिए पैटर्न बदल सकते हैं: के रूप में यह मतलब है कि पैटर्न ही अपने मैच क्षेत्र को परिभाषित करता है बल्कि उसके बाद
^(?<!function)\\w+$
मैं दूसरा दृष्टिकोण पसंद करते हैं क्षेत्र को इसके उपयोग से परिभाषित किया जा रहा है। हालांकि यह वरीयता का मामला है। यहाँ
स्रोत
2013-08-02 11:32:15