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
之间的空格,但不建议使用替换,最好使用匹配。