如果只有1个\ n而不是超过1个\ n,则想用''代替\ n
例如:hi how are you\n\nhow you doing\nhow was your day
我想要这样的输出:
hi how are you\n\nhow you doing how was your day
我正在尝试正则表达式
re.sub(r'\n{1}',' ', text)
但它不起作用。
答案 0 :(得分:1)
您应该使用
re.sub(r'(?<!\n)\n(?!\n)', ' ', text)
如果(?<!\n)\n(?!\n)
模式不与换行符((?<!\n)
也不跟((?!\n)
)开头,则匹配LF符号。
请参见Python demo:
import re
text = "hi how are you\n\nhow you doing\nhow was your day"
print(re.sub(r'(?<!\n)\n(?!\n)', ' ', text))
输出:
hi how are you
how you doing how was your day
答案 1 :(得分:0)
直接使用re.sub()
,这使您可以指定计数:
regex.sub('\n', text, 1)
答案 2 :(得分:0)
如果您想通过其他方式来做! 只需用\ n分割文本,然后在列表中用'\ n'连接(如果找到任何“”)。为每组“”添加一个额外的“ \ n”。对于前。 1或2或任何编号。的连续“”连接时加'\ n'的1 + 1或2 + 1或n + 1个数字。
s=text.split('\n')
print(s)
a=''
c=False
for i in s:
if i=='':
if c:
a+='\n\n'
else:
a+='\n'
else:
a+=' '+i
c=i
print(a)