से प्राप्त नई लाइन से मेल नहीं खाती है, Formatter
ऑब्जेक्ट या String.format()
में %n
का उपयोग करके नई लाइन प्राप्त होने पर मैं न्यूलाइन युक्त स्ट्रिंग से मेल नहीं खा सकता हूं। कृपया निम्नलिखित कार्यक्रम पर एक नजर है:नियमित अभिव्यक्ति फॉर्मेटर ऑब्जेक्ट
public class RegExTest {
public static void main(String[] args) {
String input1 = String.format("Hallo\nnext line");
String input2 = String.format("Hallo%nnext line");
String pattern = ".*[\n\r].*";
System.out.println(input1+": "+input1.matches(pattern));
System.out.println(input2+": "+input2.matches(pattern));
}
}
और इसके उत्पादन:
Hallo
next line: true
Hallo
next line: false
क्या यहाँ चल रहा है? दूसरा स्ट्रिंग मैच क्यों नहीं है?
जावा संस्करण 1.6.0_21 है।
फिर क्यों करता है पहले एक मैच (मैं खिड़कियों पर हूँ) ? – Axel
इसके अलावा, आप '[\ r \ n]' भाग को \ \ r \ \ \ 'दोनों \ n' और '\ r \ n' से मिलान करने में सक्षम होने के लिए स्विच कर सकते हैं। – Keppil
बस पता चला। विंडोज़ पर, लाइनएंड '\ r \ n' है। 'इनपुट 1' में '\ n' को लाइन अंत नहीं माना जाता है और इसलिए रेगेक्स मिलान होता है। – Axel