java 正则表达式

风之恋--- 发布于 2014/07/17 10:59
阅读 236
收藏 0

实现这样一个正则表达式:

取换行间的内容(\r,\n或者\r\n),但不包括这些回车换行,     回车换行间的空白字符(空格回车)不需要 

换个说法就是:只取换行间(\r,\n或者\r\n)的非空白字符,每组内容(是说被回车换行分开的若干组)都能分别取出来。怎么写这个pattern啊?或者split啊

加载中
1
xujif
xujif
String str = "111\n 2222  \r\n";
Pattern pattern = Pattern.compile("^\\s*(\\S+)?\\s*$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(str); 
while (matcher.find()) {
System.out.println(matcher.group(1));

}

如果非得用正则,这样ok。

其实不用正则更简单。

String str = "111\n 2222  \r\n"; 
   BufferedReader bufferedReader = new BufferedReader(new StringReader(str));
   String s = null;
   while((s=bufferedReader.readLine()) != null){
    System.out.println(s.trim());
   }

0
风之恋---
风之恋---

引用来自“xujif”的评论

String str = "111\n 2222  \r\n";
Pattern pattern = Pattern.compile("^\\s*(\\S+)?\\s*$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(str); 
while (matcher.find()) {
System.out.println(matcher.group(1));

}

如果非得用正则,这样ok。

其实不用正则更简单。

String str = "111\n 2222  \r\n"; 
   BufferedReader bufferedReader = new BufferedReader(new StringReader(str));
   String s = null;
   while((s=bufferedReader.readLine()) != null){
    System.out.println(s.trim());
   }

第二个种方法,虽然把空格都屏蔽掉  但还是有空字符串对象,所以不如第一种好,还是万分感谢啊
xujif
xujif
空字符串你在循环的时候直接排除不是更好?
返回顶部
顶部