已经回答了很多问题,以取代所有正数。但是,我找不到能够保留正数和负数的答案。我想要替换不是数字(正面或负面)的所有内容。输出应该是以下例如。
0 | success. id - 1234|
- > 0 1234
和
-10 | failure. id - 2345|
- > -10 2345
显然this回答了积极的一面。
答案 0 :(得分:2)
您可以使用此正则表达式匹配正/负整数:
[+-]?\b\d+\b
匹配正数/负数,包括小数:
[+-]?\b\d+(?:\.\d+)?\b
请注意,与使用替换相比,您最好在Pattern
和Matcher
API中使用上述正则表达式,然后获取匹配的数据。
如果您只能使用替换,请使用:
str = str.replaceAll( "([+-]?\\b\\d+\\b)|\\S+[ \\t]*", "$1" );
答案 1 :(得分:0)
我在Kotlin中用它替换了所有非Double字符,然后解析为Double:
val double = str.replace("[^0-9.-]".toRegex(), "").toDoubleOrNull()