Найти - Пользователи
Полная версия: Регулярные выражения
Начало » Центр помощи » Регулярные выражения
1
Elleg
Здравствуйте! Задача следующая:
Текст содержит слова, разделенные пробелами, запятыми и точками. Следует составить регулярное выражение, которое будет находить фрагменты текста, состоящие из трех слов начинающихся с одной и той же буквы, и стоящих подряд.
Результат, который должен получиться:
Данная строка содержит самые разные слова, с регулярным выражением в вашем тексте надо найти, но только их.
Мое выражение (в аттаче) находит только первые совпадения на букву с.
Как дописать выражение?
vic57
имхо тут регулярки не очень подходят
 >>> s ='Данная строка содержит самые разные слова, с регулярным выражением в вашем тексте надо найти, но только их.'
>>> l = s.split()
>>> for i in range(len(l) - 2):
	ch = l[i][0]
	if l[i+1][0] == ch and l[i+2][0] == ch:
		print(l[i:i+3])
		
['строка', 'содержит', 'самые']
['выражением', 'в', 'вашем']
['надо', 'найти,', 'но']
>>> 
Elleg
vic57, спасибо что потратил время. Тут нужно именно регулярное выражение, а не код. Наверное я некорректно задачу поставил. Это курс по основам регулярных выражений, без привязки к языкам.
py.user.next
  
>>> import re
>>> 
>>> text = 'abc cxx1 cxx2 cxx3 c4 def cxx5 cxx6 ghi cxx7 cxx8 cxx9 cxx10 jkl'
>>> 
>>> re.findall(r'\b(c[^ ,.]*[ ,.]+c[^ ,.]*[ ,.]+c[^ ,.]*)[ ,.]+', text)
['cxx1 cxx2 cxx3', 'cxx7 cxx8 cxx9']
>>>
YanaX
в файле ответ
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