有一个包含多个数字的字符串,例如:
12.03 5.897 7.10.74 0.103 12.05 6.4.1 8.98
Run Code Online (Sandbox Code Playgroud)
我想使用Python正则表达式仅输出那些只有的数字single dot (.),例如"12.03"和"5.897",而不是"7.10.74"和"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']
Run Code Online (Sandbox Code Playgroud)
(?<!\.) 当前一个char是DOT时断言失败是负面的看法.(?!\.) 当下一个字符是DOT时,断言前瞻性来断言失败.\b 是双边所需的字边界,以确保我们匹配完整的十进制数