加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 加入正则表达式搜索的输出

发布时间:2020-12-16 22:24:31 所属栏目:Python 来源:网络整理
导读:我有一个在文件中查找数字的正则表达式. 我把结果放在一个列表中 问题是它为每个找到的单个数字在新行上打印每个结果.它也忽略了我创建的列表. 我想要做的是将所有数字放在一个列表中. 我使用了join()但它不起作用. 代码: def readfile(): regex = re.compi

>我有一个在文件中查找数字的正则表达式.
>我把结果放在一个列表中

问题是它为每个找到的单个数字在新行上打印每个结果.它也忽略了我创建的列表.

我想要做的是将所有数字放在一个列表中.
我使用了join()但它不起作用.

代码:

def readfile():
    regex = re.compile('d+')
for num in regex.findall(open('/path/to/file').read()):
    lst = [num]
    jn = ''.join(lst)    
    print(jn)

输出:

122
34
764
最佳答案
在您的情况下,regex.findall()返回一个列表,您将在每次迭代中加入并打印它.

这就是你看到这个问题的原因.

你可以尝试这样的事情.

numbers.txt

Xy10Ab
Tiger20
Beta30Man
56
My45one

statements:

>>> import re
>>>
>>> regex = re.compile(r'd+')
>>> lst = []
>>>
>>> for num in regex.findall(open('numbers.txt').read()):
...     lst.append(num)
...
>>> lst
['10','20','30','56','45']
>>>
>>> jn = ''.join(lst)
>>>
>>> jn
'1020305645'
>>>
>>> jn2 = 'n'.join(lst)
>>> jn2
'10n20n30n56n45'
>>>
>>> print(jn2)
10
20
30
56
45
>>>
>>> nums = [int(n) for n in lst]
>>> nums
[10,20,30,56,45]
>>>
>>> sum(nums)
161
>>>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读