有一個關於正則表達式的問題,並試圖回答我發現了另一個奇怪的事情。在正則表達式中的奇怪行爲
String x = "X";
System.out.println(x.replaceAll("X*", "Y"));
這打印YY。爲什麼??
String x = "X";
System.out.println(x.replaceAll("X*?", "Y"));
而這種打印YXY
爲什麼不願意正則表達式不匹配 'X' 字?有"noting"X"nothing"
,但爲什麼先不匹配三個符號,匹配兩個,然後一個而不是三個?和第二次正則表達式匹配只有"nothing"
s而不是X
?
在Perl/PCRE中用'X *?'代替將導致'YYY'。 – Qtax 2012-02-10 13:54:56