2013-04-01 5 views
0

Мне нужно, чтобы соответствовать такие группы, как:Python соответствует регулярному выражению спасся голец

:data: 
:abc'e12\:3\:text: 

в строке, а это означает

:(?P<data>.*?): 

, но также позволяют спасся двоеточие \:

Моя лучшая попытка выглядит это:

:(?P<data>((?<=\\):|.)*?): 
+0

Пробовал ли вы использовать стартовые и концевые якоря в соответствии с первым и последним двоеточиями? (т. е. используя '^' и '$') – Jerry

ответ

3
p = re.compile(r':((\\:|[^:])+):') 
print p.match(":abc'e12\:3\:text:").group(0) 
0

Вы всегда можете убедиться, что вы получаете начальные и конечные символы с «^» и «$»:

^:(.+):$ 

Вы можете заменить с типом регулярных выражений вы хотите тоже «+.».

+0

Сделал мой вопрос немного более понятным. Извините –

+0

Чтобы быть более точным, это будет соответствовать только всей строке. Спасибо за ваше время, так или иначе –

Смежные вопросы