Java正则表达式删除所有非字母数字字符,除了空格

标签 java regex

我正在尝试用 Java 编写一个正则表达式,它会从段落中删除所有非字母数字字符,除了单词之间的空格。

这是我写的代码:

paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\s]", "");

但是,编译器给了我一条错误消息,指向 s 说它是非法的转义字符。在我将\s 添加到正则表达式的末尾之前,程序编译正常,但问题是段落中单词之间的空格被去除了。

我该如何解决这个错误?

最佳答案

您需要对 \ 字符进行双重转义:"[^a-zA-Z0-9\\s]"

Java 会将 \s 解释为 Java 字符串转义字符,这确实是无效的 Java 转义。通过编写 \\,您可以转义 \ 字符,本质上是向正则表达式发送单个 \ 字符。此 \ 然后成为正则表达式转义字符 \s 的一部分。

关于Java正则表达式删除所有非字母数字字符,除了空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796985/

相关文章:

java - 如何从 Java 中的另一个 aws lambda 调用 aws lambda 函数?

regex - notepad++正则表达式查找并替换括号之间的空格

regex - 在字符串列中查找非整数值

javascript - 在 JavaScript 中使用正则表达式匹配 "$"

javascript - preg_match_all 获取除 tabmanager 脚本之外的所有脚本选项卡

java - 读取传入电子邮件键值的便捷方法

java - 使用 spring 注释将值传递给变量

java - 使用 HttpResponseInterceptor 来操作响应

javascript - 用正则表达式提取字符串

java - 仅更新已更改字段的表