我已经看过很多帖子,但我仍然无法使它工作,我不知道为什么。整数模式 - Python的正则表达式
我所拥有的是一个相对简单的字符串,其中包含一些浮点数和整数,例如:'2 1.000000000000000 1 1 0'
。我只想从中提取整数,在这个例子中只有2, 1, 1, 0
(不是1
,后面是0
s)。
我知道我必须使用lookbehind
和lookahead
来排除.
之前或之后的数字。我可以成功地找到由昏迷前的数字,在上述情况下,0
:
import re
IntegerPattern = re.compile('-?(?<=\.)\d+(?!\.)')
a = '2 1.000000000000000 1 1 0'
IntegerPattern.findall(a)
将返回['000000000000000']
,正是我想要的。但是,当我试图找到那些不通过.
小号前面的数字,这并不工作:
import re
IntegerPattern = re.compile('-?(?<!\.)\d+(?!\.)')
a = '2 1.000000000000000 1 1 0'
IntegerPattern.findall(a)
回报['2', '00000000000000', '1', '1', '0']
。任何想法为什么?一般来说,我对于正则表达式是全新的,这只是让我无法理解。它应该工作,但它不会。任何帮助,将不胜感激。
好,谢谢,但这部分是一个学习经验。如果我有一个没有前面空格的字符串,我该怎么办?为什么我的表情不起作用? – 2014-10-27 18:32:59
@AleksanderLidtke,回答你的问题不起作用的原因。如果你计算0的数量,你会注意到它少了一个。从第二个0开始,它不会立即以'\ .'开头,因此它通过。 – smerny 2014-10-27 18:35:42
它工作正常,即使当与空间预告 – nu11p01n73R 2014-10-27 18:36:10