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

标签 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 字符,有人可以提出解决方案吗。

提前感谢帮助

爱国者

最佳答案

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

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

所以如果你使用\s 你就不走运了。只需使用不带\n 的字符类,例如

[ \r\t]

这样你的\n就会被保留。

关于java - 正则表达式问题在解析时删除\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994049/

相关文章:

java - 使用 Jsoup 检索 sessionId cookie 时出现问题

java - ImageView 随着 firebase 适配器不断变化

javascript - 用javascript计算点返回一半

python - 如何从列表元素中删除\n?

java - 使用http协议(protocol)将用户数据发送到服务器

java - 在JAVA中如何读取值直到用户按下回车键?

PHP - 根据给定的分隔符提取子字符串的最有效方法?

Android linkify URL 链接非 URL

git 和 CR 与 LF(但不是 CRLF)

java - Scanner next() - 如何替换换行符 [java]