簡體   English   中英

有選擇地替換字符串中的換行符 (python)

[英]Selectively replace line breaks in a string (python)

我已經在這里閱讀了不同的問答,但找不到我的解決方案。 我有一些凌亂的長文本,需要用空格替換其中的換行符,只有當它位於句子中間時(而不是在“。”或“!”或“?”之后)例如:

"this line break must stay.  
but this one  
not."

輸出必須是:

"this line break must stay.  
but this one not."

使用負向后視的正則表達式。 這是我在不確定某些用法時參考的正則表達式教程:
https://www.regular-expressions.info/lookaround.html

import re
p = re.compile('(?<![.!?])\n')
text = "hello,\nMy name is Hal.\nHow are\nyou doing?\n"
re.sub(p, ' ', text)
# outputs:
'hello, My name is Hal.\nHow are you doing?\n'

這個怎么運作:

?<! 是負面的回顧。 ?<=是正向后視)。 如果遵循后視模式,則否定后視將匹配模式。

在這種情況下, \\n的匹配模式以及它不能匹配的后視模式是? , . !

暫無
暫無

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

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