正则表达式:排除尾随 .0 但包含所有字符串

标签 regex

我有许多 float /字符串,如下所示: 12339.0 133339 159.0 德福凯 某物 32439

其中一些有尾随 .0。如何作为常规抑制显示所有不带尾随 .0 的数字,包括不是数字的项目?我尝试了类似的方法,希望它能从捕获组中排除所有 .0,但它不起作用: (.*)(:?.0)?

https://regex101.com/r/sC6jO2/1

最佳答案

您可以使用更简单的正则表达式:

\.0+$

并替换为空字符串,参见regex demo .

正则表达式匹配 . (\.),后跟 1 个或多个零 (0+),直到字符串末尾 ( $)。

如果您打算像最初的尝试一样匹配两个组,请使用

^(.*?)(?:\.0+)?$

查看此regex demo

这里,

  • ^ - 字符串开头
  • (.*?) - 第 1 组捕获除换行符之外的任何 0+ 个字符,尽可能少(=惰性),最多
  • (?:\.0+)? - 可选的 . 序列 + 一个或多个零
  • $ - 位于字符串末尾。

关于正则表达式:排除尾随 .0 但包含所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396941/

相关文章:

python - 带有正则表达式的 Unicode 正则表达式在 Python 中不起作用

sql - 使用正则表达式解析 select 语句(用于自定义 SQL 解析器)

javascript - 使用 jQuery (Javascript) 在段落中查找 "word"索引

regex - ng-pattern 在正则表达式应该禁止它时允许空间

.net - .NET 中的正则表达式 : joining duplicate named captured groups

javascript - 替换正则表达式javascript

ruby 正则表达式字符串$

正则表达式检测 IE9 及以下版本?

c# - 如何在已知长度内精确匹配字母和数字的组合?

Java正则表达式截断字符串