Java 替换除正数/负数以外的所有数字

Java 替换除正数/负数以外的所有数字,java,regex,regex-negation,Java,Regex,Regex Negation,替换所有正数的问题已经有了很多答案。但是,我找不到任何既保留正数又保留负数的答案。我想替换所有不是数字的东西(正数或负数)。输出应如下所示 0 |成功。id-1234 |->01234 及 -10 |故障。id-2345 |->-102345 显然是正整数。您可以使用此正则表达式匹配正/负整数: [+-]?\b\d+\b 要匹配正数/负数(包括小数): [+-]?\b\d+(?:\.\d+)?\b 请注意,与其使用replace,不如在模式和匹配器API中使用上面的正则表达式,并获取匹配的

替换所有正数的问题已经有了很多答案。但是,我找不到任何既保留正数又保留负数的答案。我想替换所有不是数字的东西(正数或负数)。输出应如下所示

0 |成功。id-1234 |
->
01234

-10 |故障。id-2345 |
->
-102345


显然是正整数。

您可以使用此正则表达式匹配正/负整数:

[+-]?\b\d+\b

要匹配正数/负数(包括小数):

[+-]?\b\d+(?:\.\d+)?\b
请注意,与其使用replace,不如在
模式
匹配器
API中使用上面的正则表达式,并获取匹配的数据


如果您只能使用“替换”,请使用:

str = str.replaceAll( "([+-]?\\b\\d+\\b)|\\S+[ \\t]*", "$1" );

我在Kotlin中使用此选项来替换所有非双精度字符,然后再解析为双精度字符:

val double = str.replace("[^0-9.-]".toRegex(), "").toDoubleOrNull()

等号有什么用?0 |成功。id-1234 |在替换中返回01234而不是0 1234所有regexHmm显示
0
1234
之间的空格,但不建议使用替换,最好使用匹配。