我有许多 float /字符串,如下所示: 12339.0 133339 159.0 德福凯 某物 32439
其中一些有尾随 .0。如何作为常规抑制显示所有不带尾随 .0 的数字,包括不是数字的项目?我尝试了类似的方法,希望它能从捕获组中排除所有 .0,但它不起作用: (.*)(:?.0)?
最佳答案
您可以使用更简单的正则表达式:
\.0+$
并替换为空字符串,参见regex demo .
正则表达式匹配 .
(\.
),后跟 1 个或多个零 (0+
),直到字符串末尾 ( $
)。
如果您打算像最初的尝试一样匹配两个组,请使用
^(.*?)(?:\.0+)?$
查看此regex demo
这里,
^
- 字符串开头(.*?)
- 第 1 组捕获除换行符之外的任何 0+ 个字符,尽可能少(=惰性),最多(?:\.0+)?
- 可选的.
序列 + 一个或多个零$
- 位于字符串末尾。
关于正则表达式:排除尾随 .0 但包含所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396941/