查找以数字

时间:2016-08-21 18:33:21

标签: python regex python-2.7 python-3.x

提取以数字开头的所有行的正则表达式是什么?

我知道^字符用于匹配行开头的任何内容,但我没有将其构造正确。

以下是我的尝试:

re.findall('^[0-9]+',mystring).

2 个答案:

答案 0 :(得分:3)

您忘记了re.MULTILINE修饰符和.*之后的[0-9]以匹配该行的其余部分。如果您 使用正则表达式,则可以使用r"(?m)^[0-9].*"。但是,这不是最好的方法。用\ n分割并遍历这些行,检查第一个字符是否为数字。

以下是我的建议:

with open('file', 'r') as f:
    for line in f:
        if len(line) > 0 and line[0].isdigit():
            print(line)

请参阅this Python demo

答案 1 :(得分:2)

我猜你要匹配整条线,但它只匹配起始编号。您需要包含贪婪的通配符以及多行参数,以告诉您要搜索多行。尝试:

re.findall('^[0-9].*', mystring, re.MULTILINE)