我有以下格式的文本文件:
DELIMITER1
extract me
extract me
extract me
DELIMITER2
我想提取extract me
.txt文件中DELIMITER1和DELIMITER2之间的每个s块
这是我当前的无效代码:
import re
def GetTheSentences(file):
fileContents = open(file)
start_rx = re.compile('DELIMITER')
end_rx = re.compile('DELIMITER2')
line_iterator = iter(fileContents)
start = False
for line in line_iterator:
if re.findall(start_rx, line):
start = True
break
while start:
next_line = next(line_iterator)
if re.findall(end_rx, next_line):
break
print next_line
continue
line_iterator.next()
有任何想法吗?
您可以使用简化这一个正则表达式re.S
中,DOTALL标志。
import re
def GetTheSentences(infile):
with open(infile) as fp:
for result in re.findall('DELIMITER1(.*?)DELIMITER2', fp.read(), re.S):
print result
# extract me
# extract me
# extract me
这也利用了非贪婪运算符.*?
,因此将找到多个DELIMITER1-DELIMITER2对的非重叠块。
问题内容: 可以说我有一个包含以下内容的文本文件 现在,我需要编写一个Python代码,该代码将读取文本文件并将内容在“开始”和“结束”之间复制到另一个文件。 我写了下面的代码。 我没有获得预期的期望输出,只是开始了。我想要得到的是开始和结束之间的所有界限。不包括开始和结束。 问题答案: 万一您的文本文件中有多个“开始”和“结束”,这会将所有数据一起导入,不包括所有“开始”和“结束”。
问题内容: 我有一个像 “ ABC [这是为了提取]” 我想提取Java中的部分。我正在尝试使用split,但是它不能按我想要的方式工作。有人有建议吗? 问题答案: 如果您的字符串中只有一对方括号(),则可以使用:
问题内容: 我需要从一个巨大的文件中提取两个匹配模式之间的特定行。 假设(文件中唯一)匹配特定内容, (文件中不唯一)匹配之后的下一个立即匹配项。然后我要提取之间的所有行,包括 样本文件内容 期望的输出 如果您能帮助我解决这个问题,将不胜感激 问题答案: 这可以是一种方法: 找到时,则使变量p = 1。 它仅在时打印行。这是通过条件完成的。如果为true,它将执行默认的awk操作,即。否则,事实并
我有下面的html片段,只需要从中间提取文本 Html块看起来像: 因此,所需的输出应该类似于File1、File2、File3。 这就是我迄今为止所尝试的 但没有按预期工作。 有什么简单的解决方案可以在python中指定的html标记块之间提取文本吗?
我正在尝试读取 xml 文件中 2 个 html 标签之间的文本。它适用于小内容,但是当内容很大时,它会失败并返回空。在高级别上可能是什么问题
问题内容: 我有绳子。我想在组织名称之后(在两个“ ..”字符之后)和管道字符之前获取子字符串。因此,输出字符串应为- 。你能帮忙吗? 我一直在尝试形成这样的正则表达式,但似乎没有用。 问题答案: 您可以使用它。 编辑: 这将恰好匹配两个点,后跟一个或多个字符,直到字符串末尾为止。