使用Python 2.4.3:希望在文本文件中多次找到相同的正则表达式吗

使用Python 2.4.3:希望在文本文件中多次找到相同的正则表达式吗,python,regex,Python,Regex,Super NOOB to Python(2.4.3):我正在执行一个包含正则表达式的函数,该正则表达式搜索我正在导入的txt文件。我能够读取和运行文本文件上的搜索和输出是正确的。我需要多个事件的乐趣。正则表达式在文本中出现48次)。代码如下: !/usr/bin/python 进口稀土 dataRead=open('pd\u用法\u 14-04-23.txt','r') dataWrite=open('test_write.txt','w') text=(dataRead.read())#读取

Super NOOB to Python(2.4.3):我正在执行一个包含正则表达式的函数,该正则表达式搜索我正在导入的txt文件。我能够读取和运行文本文件上的搜索和输出是正确的。我需要多个事件的乐趣。正则表达式在文本中出现48次)。代码如下:

!/usr/bin/python 进口稀土

dataRead=open('pd\u用法\u 14-04-23.txt','r') dataWrite=open('test_write.txt','w')

text=(dataRead.read())#读取并初始化文本以转换为字符串 s=str(text)#将文本转换为字符串进行读取

def用户(str):

用户

dataRead.close() dataWrite.close()

输出:g706454

这个输出是正确的!但是 我需要运行它多次阅读下面的文本

我还有另外两个定义需要多次运行。我需要所有3个连续运行,然后再次运行,但从下一行或其他内容开始搜索和输出新数据。我尝试实现的所有逻辑都返回相同的输出

所以我有这样的想法: 对于范围(0,47)内的计数: 如果停止,请阅读: 日期 使用情况 用户

stop_read是一个定义,它在我要查找的数据(日期、用法、用户)之后查找下一行。我想我可以这样说,如果你点击停止阅读,阅读下一行,然后重新运行定义


非常感谢您的帮助

下面是我在Python3中为正则表达式所做的工作,它应该类似于Python2。这是针对多行searc的

regex = re.compile("\\w+-\\d+\\b", re.MULTILINE)
之后在代码中,我有如下内容:

myset.update([m.group(0) for m in regex.finditer(logmsg.text)])

如果可以的话,您可能需要更新Python,因为2.4已经过时了。

看起来像是
re。findall
可以解决您的问题:

re.findall(pattern, string, flags=0)
    Return a list of all non-overlapping matches in the string.

    If one or more groups are present in the pattern, return a
    list of groups; this will be a list of tuples if the pattern
    has more than one group.

    Empty matches are included in the result.

您应该为正则表达式使用原始字符串,以避免双反斜杠转义
r'
。Python 2.4已经有十年的历史了,如果支持的话,它已经过时了。您真的需要在遗留平台上进行开发吗?考虑Python 3的新项目,或者至少2.6。如果您对Python是新的,您应该阅读以了解如何更好地格式化代码。谢谢您的评论。我编辑了这篇文章,以显示我正在使用原始字符串。再次感谢!re.findall还不能正常工作。我需要一个比列表更结构化的输出。我需要每个函数都可以执行。找到他们各自的正则表达式。有一个受控的findall吗?
re.findall(pattern, string, flags=0)
    Return a list of all non-overlapping matches in the string.

    If one or more groups are present in the pattern, return a
    list of groups; this will be a list of tuples if the pattern
    has more than one group.

    Empty matches are included in the result.