заменить \ n на "" - PullRequest
       33

заменить \ n на ""

0 голосов
/ 12 апреля 2019

Хотите заменить \ n на '', если есть только 1 \ n, а не там, где больше 1 \ 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 ]

1 голос
/ 12 апреля 2019

Вы должны использовать

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

Шаблон (?<!\n)\n(?!\n) соответствует символу НЧ, если ему не предшествует ((?<!\n)) и не следует ((?!\n)) с новой строкой.

enter image description here

См. Демонстрационную версию Python :

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
0 голосов
/ 12 апреля 2019

Если вы хотите сделать это по-другому!Просто разделите текст с помощью \ n, а затем объедините список с помощью \ n, если найден какой-либо "".Для каждого набора "" добавьте один дополнительный '\ n'.Например1 или 2 или любое нет.непрерывного "" добавьте 1 + 1 или 2 + 1 или n + 1 без '\ n' при объединении.

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)
0 голосов
/ 12 апреля 2019

Используйте re.sub() напрямую, это позволяет указать количество:

regex.sub('\n', text, 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...