gpt4 book ai didi

java - 从字符串中删除非数字和非字符符号

转载 作者:行者123 更新时间:2023-11-29 04:56:24 25 4
gpt4 key购买 nike

所以我发现很多帖子都可以使用 "[^0-9.]" 来删除非数字字符,以及 "[^\\p{L}\\s]+" 删除非字符..

但是如何将这两者结合起来。 ?

如果我尝试类似的东西

replaceAll("[^\\p{L}\\s]+" + "[^0-9.]"

它不工作..

最佳答案

只需将字符类合并为一个:

s = s.replaceAll("[^\\p{L}\\s0-9.]+", "");

当您添加字符串时,生成的正则表达式模式看起来像 [^\\p{L}\\s]+[^0-9.] 匹配非字符和非-空白字母(出现 1 次或多次)和 1 个非数字、非句点字符。

在您的情况下,您想要匹配一个不是数字、字母、空格或句点的字符(或 1 个或多个字符)。因此,两个取反的字符类应该合并为 1 个,而不仅仅是连接起来。

如果您还打算排除下划线,您可以尝试更短的版本:

s = s.replaceAll("[^\\w\\s.]+", "");

因为 \w 匹配 [\\p{L}0-9_]

关于java - 从字符串中删除非数字和非字符符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com