因此,本质上,我正在文本文件的两个尖括号内寻找特定的4位代码。我知道我需要打开文本文件,然后逐行解析,但是我不确定在检查“文件中的行”之后构造代码的最佳方法。
我想我可以以某种方式拆分,剥离或分区,但我还编写了一个正则表达式,并在其上进行了编译,因此如果返回匹配对象,我认为我不能将其用于那些基于字符串的操作。我也不确定我的正则表达式是否足够贪婪…
我想将所有找到的匹配的所有实例存储为元组或列表中的字符串。
这是我的正则表达式:
regex = re.compile("(<(\d{4,5})>)?")
考虑到到目前为止它相当基本,我认为不需要包含所有代码。
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())
关于正则表达式的几点注意事项:
?
在末尾和外部(...)
更新: 重要的是要了解正则表达式中的 匹配 和 捕获 可能完全不同。我上面的代码段中的正则表达式与 带有
尖括号的模式匹配,但是我要求仅捕获内部编号, 而不带 尖括号。
在python中可以找到更多有关正则表达式的信息:
正则表达式HOWTO
问题内容: 我想在包含单行的超大文件(fe大于1 GB)中搜索模式。无法将其加载到内存中。目前,我使用读入缓冲区(1024个字符)。主要步骤: 将数据读入两个缓冲区 该缓冲区中的搜索模式 如果找到模式,则增加变量 将第二个缓冲区复制到第一个 将数据加载到第二个缓冲区 在两个缓冲区中搜索模式。 如果找到模式,则增加变量 重复上述步骤(从4开始),直到EOF 该算法(两个缓冲区)让我避免了将搜索到的文
问题内容: 如何在Python中使用正则表达式替换文件中的字符串,因为我想打开一个文件,其中应替换其他字符串的字符串,而我们需要使用Reg表达式(搜索和替换)。有人可以帮助我吗?打开文件并将其与搜索和替换方法一起使用的一些示例 问题答案:
我正试图用正则表达式从一个文件中删除一组文本。现在我有了一个< code >字符串中的文件内容,但是< code >匹配器找不到模式。示例文件是: 我需要找到以开头和以结尾的块,然后删除它们。这是我使用的最小代码。我使用的正则表达式是,它应该查找和模式从“\开始”开始,直到第一次出现“\结束{评论}”。我在记事本上工作。 然而,使用这个java代码,它找到了第一个' \begin '和最后一个'
问题内容: 我想检查字符串是否在文本文件中。如果是,请执行X。否则,请执行Y。但是,True由于某些原因,此代码始终返回。谁能看到错在哪里? 问题答案: 你一直得到的原因已经给出,因此我只提供另一个建议: 如果你的文件不是太大,则可以将其读取为字符串,然后使用它(比读取和检查每行更容易,并且通常更快): 另一个技巧:通过使用创建使用基础文件的“字符串状”对象(而不是读取内存中的整个文件),可以减轻
问题内容: 我需要找到所有包含特定字符串模式的文件。我想到的第一个解决方案是使用通过 xargs grep 传递的 find : __ 但是,如果我需要找到跨越多行的模式,那我就陷入困境,因为香草grep无法找到多行模式。 问题答案: 因此,我发现 pcregrep 代表 Perl兼容正则表达式GREP 。 例如,您需要找到文件中 __name_ 变量后紧跟 __description_ 变量的文
问题内容: 我有一组文本文件,它们代表我想使用JavaScript应用程序下载的来自第三方的数据表。他们看起来像这样: 我一直在尝试使用jQuery来做到这一点。我已经可以使用$ .load,但是我不想将数据存储在DOM中,而是想将其解析为一个对象。每当我尝试使用一种ajaxy方法时,都会收到我不理解的错误。例如: 给我一个价值。任何建议,将不胜感激。 问题答案: 为了使该代码正常工作,事件需要是