正则表达式问题在解析时删除\ n

时间:2011-11-03 11:23:42

标签: java regex newline

我的代码中存在一个[^\s"']+|"[^"]*"|'[^']*'的正则表达式。我的问题是当我做类似的事情时:

Matcher matcher = regex.matcher("INDIA \n PAKISTAN");
  StringBuilder returnQuery = new StringBuilder();
  while (matcher.find()) {
      String str = matcher.group();
      if (AND.equalsIgnoreCase(str) || OR.equalsIgnoreCase(str) || NOT.equalsIgnoreCase(str)) {
          returnQuery.append(str.toUpperCase()).append(" ");
      } else {
          returnQuery.append(str).append(" ");
      }
  }

它删除了我想保留的\ n字符,有人可以建议解决方案。

提前感谢帮助

Vaibhav的

1 个答案:

答案 0 :(得分:5)

\ s元字符用于查找空白字符。        空白字符可以是:

  • 空格字符
  • 制表符
  • 回车符号
  • 新行字符
  • 垂直制表符
  • 换页符

所以,如果你正在使用,那么你就是运气不好。只需使用没有\ n的字符类,例如

[ \r\t]

这样你的\ n将被保留。