我的代码中存在一个正则表达式,它是 [^\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/