正则表达式分配

时间:2016-05-24 13:25:05

标签: python regex

我正在参加python的在线课程。我已经在这里待了两个星期。我编写了以下代码来查找示例文本文档中的数字。我遇到的问题是,当我从一行移动到另一行并运行正则表达式时,它找到第一组数字,然后跳过该行上的任何剩余数字并移动到下一行,它只匹配第一个数字线。我的代码如下:

BackSpace

3 个答案:

答案 0 :(得分:3)

你明确告诉它跳过所有数字,但第一个:

num = int(nums[0])

而是使用列表推导来强制int并使用extend()附加整个列表。

numlist.extend([int(x) for x in num])

答案 1 :(得分:1)

正如其他人已经注意到的那样,您将丢弃列表中的所有其他数字并仅使用第一个元素。您可以使用map函数将数字转换为int,然后扩展列表

for line in fh:
     nums = re.findall('[0-9]+',line)
     if len(nums) < 1 : continue
     nums = map(int, nums)
     numlist.extend(nums)

答案 2 :(得分:0)

问题是您没有在nums上循环,只是在nums列表中追加第一项。

要解决此问题,您应该迭代nums并附加每个项目。