[英]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.