[英]python regex remove after new line
一旦在單詞Total_Cases
之后看到 CRLF ( \r\n
) 換行序列,我就會嘗試刪除所有內容。
輸入 1:
Some text\r\nTotal_Cases - 1 - 1\r\n**Please
需要 output 1:
Some text\r\nTotal_Cases - 1 - 1`
輸入 2:
Some text\r\nTotal_Cases 3 1 - - - 4\r\n 9 of 15\r\n
所需 output:
Some text\r\nTotal_Cases 3 1 - - - 4
使用的代碼:
re.sub(r'(Total_Cases[\n]).*', r'\1', test1, flags=re.S).rstrip()
re.sub(r'(Total_Cases[\r\n]).*', r'\1', test1, flags=re.S).rstrip()
兩者似乎都沒有按預期工作。
您可以使用
re.sub(r'(Total_Cases.*?)[\r\n].*', r'\1', test1, flags=re.S).rstrip()
細節
(Total_Cases.*?)
- 第 1 組(替換模式中的\1
指的是這個值): Total_Cases
然后是任何 0 個或多個字符,盡可能少[\r\n]
- CR 或 LF 符號.*
- 直到字符串結尾的任何字符。非正則表達式方法:遍歷行,一旦在行上找到匹配項,停止將行附加到結果列表:
test1 = "More necessary\r\nlines\r\nhere\r\nTotal_Cases - 1 - 1\r\n**Please"
search = "Total_Cases"
lines = test1.splitlines()
results = []
for line in lines:
results.append(line)
if search in line:
break
print ( "\n".join(results) )
Output:
More necessary
lines
here
Total_Cases - 1 - 1
為您輸入的每個字符串嘗試此操作:
input1 = 'Total_Cases - 1 - 1\r\n**Please'
input1.splitlines()[0]
你可以試試這個:
x = 'Total_Cases - 1 - 1\r\n**Please'
index = x.index('\r\n')
if index:
print(x[:index])
else:
print(x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.