Уценка акцента - повторная замена

1

Как бы вы реализовали Markddown emphasis или bold с регулярными выражениями?

Или как можно заменить re \*\*(.*)\*\* на то, что находится внутри ** **?

  • 0
    Воплощать в жизнь? Регекс - это просто шаблоны. То, что вы делаете с шаблоном, зависит от вас и вашего языка.
Теги:
parsing
markdown

2 ответа

3
Лучший ответ

Вы можете использовать re.sub():

import re

myRegex = re.compile(r"\*\*(.+?)\*\*")
string = "some **text** and some **more**"

output = myRegex.sub(r"\1", string)
  • 1
    -1: это работает, только если в строке есть один блок (т. string = "some **text** plus **other text** терпит неудачу). Вы должны использовать регулярное выражение для замены: output = myRegex.sub('\\1', string)
  • 0
    Хорошая точка зрения. Я бы просто зациклил поиск, пока результатов больше не было, но ваш путь гораздо более изящен. Отредактировано, чтобы отразить это.
Показать ещё 2 комментария
2

Я думаю, Fantasizer имеет правильную идею.

Кроме того, вы должны взглянуть на основанную на Python Markdown Library

В частности, просмотрите inlinepatterns.py, чтобы увидеть, как они соответствуют "сильным" (жирным) и "акцентом"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню