簡體   English   中英

如何替換字符串中的 `\n` 而不是 Python 中的 `\n\n`?

[英]How do I replace `\n` in a string but not `\n\n` in Python?

我有以下字符串:

mystring = '\n\nAvailability:\n  Open source,  \n\nResource Name:\n  QIIME  \n\nResource ID:\n                        SCR_008249'

我想從上面的字符串中替換\n ,但不是\n\n

所以我嘗試了這個:

new_string = " ".join(mystring.split())

並發現了這個:

'Availability: Open source, Resource Name: QIIME, Resource ID: SCR_008249'

但我想要這樣的東西:

'Availability: Open source, 
 Resource Name: QIIME Resource 
 ID: SCR_008249'

謝謝!

您可以使用正則表達式:

import re

print(re.sub(r'\n(\n)?', r'\1', mystring))

這解決了你所說的問題。 但是,output 看起來與您的 output 不同,因為您的 output 不符合您的要求。

如果您還想規范化空白,請輸入一些空白模式,例如

print(re.sub(r'\n(\n)? *', r'\1 ', mystring))

一種選擇是將其拆分為\n\n\ ,從每個部分中刪除\n ,然后將其重新組合在一起:

mystring = '\n\nAvailability:\n  Open source,  \n\nResource Name:\n  QIIME  \n\nResource ID:\n                        SCR_008249'

new_string = "\n\n".join([x.replace("\n","") for x in mystring.split("\n\n")])

print(repr(new_string))

output:

'\n\nAvailability: Open source, \n\nResource Name: QIIME \n\nResource ID: SCR_008249'

暫無
暫無

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

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