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