我尝试运行以下代码,从Python中的字符串中提取非零正整数:
#python code
import re
positive_patron = re.compile('[0-9]*\.?[0-9]+')
string = '''esto si esta en level 0 y extension txt LEVEL0.TXT
2 4 5 6 -12 -43 1 -54s esto si esta en 1 pero es
txt 69 con extension txt y profunidad 2'''
print positive_patron.findall(string)
这将给出输出['0', '0', '2', '4', '5', '6', '12', '43', '1', '54', '1', '69', '2']
但是,我不想匹配0或负数,我希望输出为int
s,就像这样:[2,4,5,6,1,1,69,2]
。在
有谁能告诉我怎么做到这一点吗?在
使用单词边界转义序列
\b
,这样它就不会与周围有其他字母数字字符的数字匹配。也可以使用negative lookbehind来禁止前导的-
。在demo
要跳过
^{pr2}$0
,请在使用regexp之后使用筛选器执行此操作。在相关问题 更多 >
编程相关推荐