替换除正/负数之外的所有内容

时间:2015-09-06 09:14:24

标签: java regex regex-negation

已经回答了很多问题,以取代所有正数。但是,我找不到能够保留正数和负数的答案。我想要替换不是数字(正面或负面)的所有内容。输出应该是以下例如。

0 | success. id - 1234| - > 0 1234

-10 | failure. id - 2345| - > -10 2345

显然this回答了积极的一面。

2 个答案:

答案 0 :(得分:2)

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

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

RegEx Demo

匹配正数/负数,包括小数:

[+-]?\b\d+(?:\.\d+)?\b

请注意,与使用替换相比,您最好在PatternMatcher API中使用上述正则表达式,然后获取匹配的数据。

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

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

Replace Demo

答案 1 :(得分:0)

我在Kotlin中用它替换了所有非Double字符,然后解析为Double:

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