首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2013-04-21 
为什么这段代码的输出只有xyz?String str abc\nijk\nxyz\nPattern p Pattern.compile(.*\\n$)Ma

为什么这段代码的输出只有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());
}
}
}

正则最后加个?也可以,先让字符吃掉匹配的

热点排行
Bad Request.