Найти - Пользователи
Полная версия: regex найти все буквы и точку всех предложений в строке
Начало » Python для новичков » regex найти все буквы и точку всех предложений в строке
1
Kurtz
Здравствуйте.
Подскажите, необходимо найти все слова и каждую последнюю точку всех предложений в строке.
Что-то вроде этого:
input:
 'First sentence...  *&%$#79686 585 ... Second sentence 89^&^    continues...      The third one..'
output:
 'First sentence. Second sentence continues. The third one.'

Поискал по stack overflow, не один из предложенных там похожих вариантов не работает как нужно.
Спасибо.
papuas
 cat test
'First sentence… *&%$#79686 585 … Second sentence 89^&^ continues… The third one..'

 # sed 's/…/\. /g' test | grep -Po "(^\')?([a-zA-Z]+(\.\s?|\s)?|(\'$)){1,}" | tr -d '\n'
'First sentence. Second sentence continues. The third one.'

чуть позже скину с модулем re
Kurtz
Будет время, скидывайте, пока что
 line = re.findall('(^\')?([a-zA-Z]+(\.\s?|\s)?|(\'$)){1,}', line)
не дает нужного результата.
py.user.next
Задание неконкретное.

Вот для такой строки какой результат должен быть?
abc *&%$#79686 585 … 123 ... abc ... ...
Kurtz
 'abc. abc.'
То есть мы рассматриваем каждую строку как набор предложений, каждое из которых состоит из букв и заканчивается точкой. Мы ищем все буквы до тех пор пока не встретим точку. Это индикатор того, что предложение закончилось. Далее повторяем все заново.
py.user.next
А regex тут зачем? Проще всё это конечным автоматом сделать.
vic57
 >>> s = 'First sentence...  *&%$#79686 585 ... Second sentence 89^&^    continues...      The third one..'
>>> import re
>>> s = re.sub('[^a-zA-Z. ]','',s)
>>> l = [i.strip() for i in s.split('.') if i.strip()]
>>> l
['First sentence', 'Second sentence     continues', 'The third one']
>>> l = [re.sub('[ ]+',' ',i) for i in l]
>>> l
['First sentence', 'Second sentence continues', 'The third one']
>>> '. '.join(l)+'.'
'First sentence. Second sentence continues. The third one.'
>>> 
Kurtz
Спасибо, то что нужно!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB