当前位置: 代码迷 >> J2SE >> 为啥这段代码的输出只有xyz
  详细解决方案

为啥这段代码的输出只有xyz

热度:91   发布时间:2016-04-23 22:31:00.0
为什么这段代码的输出只有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());
}
}
}

正则最后加个?也可以,先让字符吃掉匹配的
  相关解决方案