Some HAT...

= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 755
| Вход | Регистрация
нет
фото
Автор:  Dirk Diggler
Дата:  4-Jan-2006 14:45 (gmt = -3.0)

заработало, но не могу составить регэксп

Как по-регэксповски ;-) будет "последовательность любых символов, до первого появления ДВУХ ПРОБЕЛЬНЫХ СИМВОЛОВ подряд" (можно с поглощением пробелов)? простая конструкция ".+(?=\s\s)" или ".+\s\s" не работает из-за жадности +, а убирание жадности .+? заставляет + хавать только первый символ. Конструкция символьных классов [\w\d\s,:.()]+ не работает по причине того, что все равно схавает два пробела и не заметит....

Кстати, все равно перед записью в файл элементы надо кодировать, иначе интерпретатор ругается.

 1  #!/usr/bin/env python
 2  # -*- coding: utf-8 -*-   
 3  
 4  import re
 5  inp_file=open('xian.txt')
 6  cur_line=unicode(inp_file.read(),'utf-8')
 7  rxAnekdot=re.compile("^\w{1,8}$[\s^]{1,2}",re.U | re.M | re.S)
 8  
 9  patResList = re.findall( rxAnekdot, cur_line ) 
10  
11  if len(patResList) >= 1:
12    out_file=open('xian3.txt','w')
13    for el in patResList:
14      out_file.write(el.encode('utf-8'))
15    out_file.close() 
16  
17  else:
18    print 'second pattern hasn\'t been matched'



все сообщения ветви:

Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.283