为什么这段代码的输出只有xyz?
String str = "abc\nijk\nxyz\n";
Pattern p = Pattern.compile(".*\\n$");
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
------解决方案--------------------改为Pattern p = Pattern.compile(".*\\n");
String str = "abc\nijk\nxyz\n";//这里的\n是换行了,表示
abc
ijk
xyz
.*\\n$当然只匹配最后一个了
------解决方案--------------------
import java.util.regex.*;
public class Test02 {
public static void main(String[] args){
String str = "abc\nijk\nxyz\n";
Pattern p = Pattern.compile(".*\\n$?");
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
}
正则最后加个?也可以,先让字符吃掉匹配的