如何使用结合正则表达式和字符串/文件操作的Python在文本文件中搜索模式,并存储模式实例?

发布于 2021-01-29 15:09:06

因此,本质上,我正在文本文件的两个尖括号内寻找特定的4位代码。我知道我需要打开文本文件,然后逐行解析,但是我不确定在检查“文件中的行”之后构造代码的最佳方法。

我想我可以以某种方式拆分,剥离或分区,但我还编写了一个正则表达式,并在其上进行了编译,因此如果返回匹配对象,我认为我不能将其用于那些基于字符串的操作。我也不确定我的正则表达式是否足够贪婪…

我想将所有找到的匹配的所有实例存储为元组或列表中的字符串。

这是我的正则表达式:

regex = re.compile("(<(\d{4,5})>)?")

考虑到到目前为止它相当基本,我认为不需要包含所有代码。

关注者
0
被浏览
111
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    import re
    pattern = re.compile("<(\d{4,5})>")
    
    for i, line in enumerate(open('test.txt')):
        for match in re.finditer(pattern, line):
            print 'Found on line %s: %s' % (i+1, match.group())
    

    关于正则表达式的几点注意事项:

    • 如果您不想将数字与尖括号匹配,而只需要数字本身,则不需要?在末尾和外部(...)
    • 它与尖括号之间的4位或5位数字匹配

    更新: 重要的是要了解正则表达式中的 匹配捕获 可能完全不同。我上面的代码段中的正则表达式与 带有
    尖括号的模式匹配,但是我要求仅捕获内部编号, 而不带 尖括号。

    在python中可以找到更多有关正则表达式的信息:
    正则表达式HOWTO



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看