将\ n替换为“”

时间:2019-04-12 01:50:28

标签: python regex

如果只有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) 但它不起作用。

3 个答案:

答案 0 :(得分:1)

您应该使用

re.sub(r'(?<!\n)\n(?!\n)', ' ', text)

如果(?<!\n)\n(?!\n)模式不与换行符((?<!\n)也不跟((?!\n))开头,则匹配LF符号。

enter image description here

请参见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)