Formatter
nesnesinde veya String.format()
nesnesinde %n
kullanılarak yeni satır elde edildiğinde yeni satır içeren bir Dizgi eşleştiremiyorum. Aşağıdaki programda bir göz edin:Düzenli ifade, Biçimlendirici nesnesinden alınan satırsonuyla eşleşmiyor
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));
}
}
ve çıkışı:
Hallo
next line: true
Hallo
next line: false
Burada neler oluyor? İkinci dizge neden uyuşmuyor?
Java sürümü 1.6.0_21'dir.
O zaman neden ilk maçı (Ben pencerelerde değilim) yok ? – Axel
Ayrıca, '\ n' ve' \ r \ n' eşleşmesi için '[\ r \ n]' parçasını '\ r? \ N' olarak değiştirmek isteyebilirsiniz. – Keppil
Sadece öğrendim. Pencerelerde, satır sonu "\ r \ n" şeklindedir. Input1'de '\ n' bir satır sonu olarak kabul edilmez ve dolayısıyla normal ifadeler eşleşir. – Axel