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