查找.txt文件中的数字,其中包含以特定的4个数字组合结尾的数千个数字

时间:2018-02-10 19:51:18

标签: python regex

我目前所写的内容我可以找到特定的数字,但我需要以。结尾的数字。

数据文件如下所示:

1231231234
1231231234
1231231234
etc...

我的代码:

import re
with open("test.txt") as f:
   with open("testoutput.txt", "w") as f1:
       for line in f:
           if re.match("^123", line):
               f1.write(line)

2 个答案:

答案 0 :(得分:0)

不清楚为什么您使用^123来匹配您的号码。

在正则表达式范例中,"以某种东西结束"转换为"某些东西+行尾"。在大多数正则表达式中,something$with open("test.txt") as f, open("testoutput.txt", "w") as f1: ... 。请看一下official python doc

不是关于实际问题,提示:您可以在一行中编写多个上下文管理器,例如

@DirtiesContext(classMode = AFTER_EACH_TEST_METHOD)

答案 1 :(得分:0)

不需要正则表达式,您可以使用endswith

string = """
1231231234

1231231234

1231231234
888
"""

numbers = [line 
    for line in string.split("\n") 
    if line and not line.endswith('1234')]
print(numbers)

哪个收益

['888']

<小时/> 或者,反过来说:

string = """
1231231234

1231231234

1231231234
888
"""

numbers = [line 
    for line in string.split("\n") 
    if line and line.endswith('1234')]
print(numbers)
# ['1231231234', '1231231234', '1231231234']