Форум сайта python.su
Благодарю,
Если не трудно подскажите всё же, как победить:
Если символы \n находятся в строке с английскими буквами, то фильтр срабатывает и возвращает то что нужно, однако если он находится в строке с русскими буквами, то возвращает пустое значение.
Подскажите что можно предпринять?
Офлайн
покажи пример текста, для обработки, а то там нет русского в твоём примере. Так же не понятно где именно стоит перенос на новую строку. Как вариант используй разделение /n.
Отредактировано sypper-pit (Сен. 25, 2014 07:05:01)
Офлайн
Офлайн
Проблема оказалась не в том, что не удаляются символы из строки, а в том, что не удаляются символы из списка. Другими словами:
>>>dd = ‘моя строка \n\n что то еще’ >>>dd.replace(‘\n’,’') >>>‘моя строка что то еще’
>>>dd = [‘моя строка \n\n что то еще’] >>>str(dd).replace(‘\n’,’') >>>[‘моя строка \\n\\n что то еще’]
>>>import re >>> re.sub(r'[\n]','',str(dd)) >>>[‘моя строка \\n\\n что то еще’]
Отредактировано Dobrodel (Сен. 25, 2014 14:19:59)
Офлайн
Вот как вариант
str(dd[0]).replace(‘\\n’,’')
[0]
[1]
re.sub(r'[\\n]','',str(dd[0]))
Отредактировано sypper-pit (Сен. 25, 2014 16:42:15)
Офлайн
Благодарю Всех, за участие.
Решение было на поверхности, правда немного нетривиальное.))
>>>dd = [‘моя строка \n\n что то еще’] >>>str(dd).replace(‘\\n’,’') >>>[‘моя строка что то еще’]
Отредактировано Dobrodel (Сен. 25, 2014 15:20:31)
Офлайн
да экранирование символа должно быть, не заметил сразу. Просто это разбирается еще в самом начале изучения питона и не обратил внимания, что ты его не использовал.
Отредактировано sypper-pit (Сен. 25, 2014 16:43:15)
Офлайн
Dobrodel>>> dd = ['моя строка \n\n что то еще'] >>> str(dd).replace('\n', '')
>>> lst = ['abc \n\n def', 'abc \n\n def', 'abc \n\n def'] >>> >>> lst = [i.replace('\n', 'x') for i in lst] >>> lst ['abc xx def', 'abc xx def', 'abc xx def'] >>>
Dobrodel
Такой вариант так же не работает:
>>> import re >>> >>> s = 'abc \n\n def' >>> re.sub(r'\n', 'x', s) 'abc xx def' >>>
Отредактировано py.user.next (Сен. 26, 2014 23:08:27)
Офлайн
Благодарю, принял к сведению.
Офлайн