无法避免我的脚本占用不必要的行

时间:2018-07-27 16:35:16

标签: python regex python-3.x

我已经用python编写了一个脚本来从文本容器中获取确定性。我使用re模块来完成这项工作。但是,它给了我不必要的输出以及所需的输出。

如何修改表情以使其紧贴想要抓住的线条?

这是我的尝试:

import re

content = """
A Gross exaggeration,
-- Gross   5 90,630,08,
Gross      4 13,360,023,
      Gross      2 70,940,02,
Luke gross is an actor
"""
for item in re.finditer(r'Gross(?:[\d\s,]*)',content):
    print(item.group().strip())

我得到的输出:

Gross
Gross   5 90,630,08,
Gross      4 13,360,023,
Gross      2 70,940,02,

我希望得到的输出:

Gross      4 13,360,023
Gross      2 70,940,02

2 个答案:

答案 0 :(得分:1)

我将正则表达式字符串更改为r'(?:^\s*?)Gross[\d\s,]*?(?=,$)',并添加了多行标志(online regex here):

import re

content = """
A Gross exaggeration,
-- Gross   5 90,630,08,
Gross      4 13,360,023,
      Gross      2 70,940,02,
Luke gross is an actor
"""

for item in re.finditer(r'(?:^\s*?)Gross[\d\s,]*?(?=,$)',content, flags=re.M):
    print(item.group().strip())

输出为:

Gross      4 13,360,023
Gross      2 70,940,02

答案 1 :(得分:0)

^\s*Gross[\d ,]*(?=,)将捕获您想要的内容。

我刚刚在^处添加了信号以指示行的开始,使用\s*表示“粗大”之前的可选空格,并从末尾修剪了,。我还从您的角色类中删除了您的\s,因为它可以换行。我将其替换为空白。

Demo