有一个由多个数字组成的字符串,例如:
12.03 5.897 7.10.74 0.103 12.05 6.4.1 8.98
我想用Python正则表达式仅输出那些带有 ONLY 的数字single dot (.)
, 例如"12.03"
and "5.897"
, not "7.10.74"
and "6.4.1"
.
我知道这是一个没有正则表达式的小问题,我只想用正则表达式解决这个问题。但我真的不知道如何用正则表达式解决这个问题。有人可以帮助我吗?
如果您想要一个纯正则表达式解决方案,请使用lookarounds:
>>> s = "12.03 5.897 7.10.74 0.103 12.05 6.4.1 8.98"
>>> print re.findall(r'(?<!\.)\b\d+\.\d+\b(?!\.)', s)
['12.03', '5.897', '0.103', '12.05', '8.98']
正则表达式演示 https://regex101.com/r/MFgPui/4
-
(?<!\.)
当前一个字符为 DOT 时,负向后查找断言失败。
-
(?!\.)
当下一个字符是 DOT 时,是负向前瞻以断言失败。
-
\b
是两边都需要的字边界,以确保我们匹配完整的十进制数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)