簡體   English   中英

在文本文件中的多個關鍵字之前插入新行

[英]Insert new line before multiple keywords in text file

我有以下文字:

“這就是問題。從此文檔中提取一些數據。文本是我想要的。並不是真的。”

我可以在多個關鍵字之后插入新行:

import fileinput
for line in fileinput.input('text.txt', inplace=1):
    print line,
    if line.startswith(('Extract',  'Text')):
        print ' '

但是我找不到在關鍵字之前也添加換行符的解決方案。

最終格式應類似於:

“這就是問題。

從此文檔中提取一些數據。

文字是我想要的。 真的沒有發生

問題在於,除了關鍵字之外,所有單詞都可以更改。 我正在尋找編輯包含關鍵字的任何文本。

感謝您的建議。

你的意思是:

import fileinput
for line in fileinput.input('text.txt', inplace=1):
    if line.startswith(('Extract',  'Text')):
        print '\n'+line+'\n'    
    else:    
        print line

regex子函數將為您提供所需的東西:

import re
keywords_regex = r"(Extract )|(Text )"
line = re.sub(keywords_regex, "\n\1", line) + "\n"

但是首先,您必須將輸入文本拆分為相應的句子。 您可以這樣進行:

import re
lines = text.split(". ")

# replace the removed periods
lines = [line + "." for line in lines]

keywords_regex = r"(Extract )|(Text )"
lines = [re.sub(keywords_regex, "\n\1", line) + "\n" for line in lines]

“ \\ 1”是正則表達式的縮寫“第一個匹配組”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM