使用regex(python re)在字符串中搜索非零正整数

2024-09-27 21:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试运行以下代码,从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或负数,我希望输出为ints,就像这样:[2,4,5,6,1,1,69,2]。在

有谁能告诉我怎么做到这一点吗?在


Tags: 字符串代码importretxtstringextensioncode
1条回答
网友
1楼 · 发布于 2024-09-27 21:31:34

使用单词边界转义序列\b,这样它就不会与周围有其他字母数字字符的数字匹配。也可以使用negative lookbehind来禁止前导的-。在

positive_patron = re.compile(r'\b(?<!-)\d*\.?\d+\b')

demo

要跳过0,请在使用regexp之后使用筛选器执行此操作。在

^{pr2}$

相关问题 更多 >

    热门问题