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