Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2013 23:02:22

Kato
Зарегистрирован: 2012-11-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения: поиск

Всем добрый вечер. Не могу составить рабочее выражение- нужно найти все слова в английском тексте, заканчивающиеся на “-dom”, записать их в новый файл + в исходном тексте названия дней недели c ,с начинающиеся с согл + гл(точнее, такие слова, заканчивающиеся на “-day”), преобразовать в вид “…day”.
Не могли бы посмотреть и указать ошибки?

import codecs, re
f = codecs.open(u'kontra.txt', 'r', 'utf-8-sig')
arr = []
doms = []
for line in f:
for word in line.split():
arr.append(word)
f.close()

for i in range(len(words)):
dom = re.findall(u'^(.)(dom)$', words[i])
doms.append(dom)
f1 = codecs.open(u'doms.txt', 'w', 'utf-8')
for i in dom:
f2.write(i + u' ')
f1.close()

for i in range(len(doms)):
doms[i] = re.sub(u'\\b(s|m|t|w)(o|u|e|a)(day)', u'___\\4', doms[i], flags=re.U)
f2 = codecs.open(u'days.txt', 'w', 'utf-8')
for i in doms:
f2.write(i + u'\r\n')
f2.close()

Офлайн

#2 Май 16, 2013 14:05:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Регулярные выражения: поиск

>>> import re
>>> 
>>> text = 'abcd abcd1dom abcd abcd2dom'
>>> 
>>> lst = re.findall(r'\S*dom\b', text)
>>> print(lst)
['abcd1dom', 'abcd2dom']
>>>

>>> import re
>>> 
>>> text = 'abcd sunday abcd monday abcd tuesday ' \
...        'abcd wednesday abcd thursday abcd friday ' \
...        'abcd saturday abcd'
>>> 
>>> lst = re.findall(r'\b[^aeiouy][aeiouy]\S*day\b', text)
>>> print(lst)
['sunday', 'monday', 'tuesday', 'wednesday', 'saturday']
>>> 
>>> rtext = re.sub(r'\b[^aeiouy][aeiouy]\S*day\b', r'...day', text)
>>> print(rtext)
abcd ...day abcd ...day abcd ...day abcd ...day abcd thursday abcd friday abcd ...day abcd
>>>



Отредактировано py.user.next (Май 16, 2013 14:11:22)

Офлайн

#3 Май 21, 2013 13:55:46

Kato
Зарегистрирован: 2012-11-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения: поиск

Извините, а бэкслеш в регулярном выражении что означает?

Офлайн

#4 Май 22, 2013 01:33:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Регулярные выражения: поиск

Kato
а бэкслеш в регулярном выражении что означает?
бэкслеш начинает экранированную последовательность - следующий символ (или группа символов) приобретает специальный смысл
python.org. re
читай начало



Офлайн

#5 Май 22, 2013 07:07:28

Kato
Зарегистрирован: 2012-11-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения: поиск

py.user.next, спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version