Форум сайта python.su
Всем добрый вечер. Не могу составить рабочее выражение- нужно найти все слова в английском тексте, заканчивающиеся на “-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()
Офлайн
>>> 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)
Офлайн
Извините, а бэкслеш в регулярном выражении что означает?
Офлайн
Katoбэкслеш начинает экранированную последовательность - следующий символ (или группа символов) приобретает специальный смысл
а бэкслеш в регулярном выражении что означает?
Офлайн
py.user.next, спасибо
Офлайн