Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 23, 2013 22:00:19

Fre
Зарегистрирован: 2012-04-20
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена тегов в тексте

нужно в тексте все вхождения типа **абвгд** заменить на <b>абвгд</b>
на перле что то вроде s/**(+)**/<b>$1</b>/g
копнув регулярные выражения в питоне, я не нашел что могло бы мне помочь
плохо искал или эту задачу стоит решить без регулярных выражений?

Офлайн

#2 Фев. 24, 2013 11:53:23

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Замена тегов в тексте

import re
new_string = re.sub(r'\*\*(.+?)\*\*', lambda mo: '<b>%s</b>' % mo.group(1), start_string, re.S)
типа того

Офлайн

#3 Фев. 24, 2013 12:27:47

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Замена тегов в тексте

Офлайн

#4 Фев. 24, 2013 14:14:05

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Замена тегов в тексте

Fre
http://docs.python.org/2/library/re.html#re.sub

dimy44, можно без lambda

In [1]: import re
 
In [2]: re.sub(r"\*\*(.*?)\*\*", r"<b>\1</b>", "**tst**")
Out[2]: '<b>tst</b>'

Офлайн

#5 Фев. 24, 2013 14:48:26

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Замена тегов в тексте

Точно, протупил.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version