2017-02-05 2 views
-2

Я хочу сделать что-то подобное для текста (это просто пример, чтобы показать проблему):найти подстроки и заменить их, но получить их информацию [питон]

new_text = re.sub(r'\[(?P<index>[0-9]+)\]', 
      '(Found pattern the ' + index + ' time', text) 

Где текст мой оригинальный текст , Я хочу найти любую подстроку вроде этого: [3] или [454]. Но это не сложная часть. Трудная часть заключается в том, чтобы получить там номер. Я хочу использовать номер для использования метода с именем add_link(number), который ожидает число (вместо строки, которую я строю с помощью «Найденный шаблон ...» - это просто пример). (В базе данных он хранит ссылки, сопоставленные идентификаторам, где он находит ссылки.)

Python сообщает мне, что не знает локальную переменную index. Как я могу узнать это?

Редактировать: Мне сказали, что я не просил четко. (У меня уже есть ответ, но, возможно, кто-то будет читать это в будущем.) Вопрос в том, как получить шаблон, известный как [0-9]+, получить как локальную переменную. Я догадался, что это будет примерно так: (?P<index>[0-9]+), и это было.

Thanx в развитых, Asqiir

+2

Ваш вопрос непонятен. Опишите проблему на примере. Кроме того, перед отправкой вопроса вы должны прочитать его один раз и посмотреть, будете ли вы отвечать на этот вопрос, могли бы вы понять его и ответить на него? –

+0

Почему мой вопрос обозначен как дубликат? Данная ссылка (вопрос, чей дубликат это он сказал) не отвечает на мой вопрос. (Который: как получить локальную переменную.) – Asqiir

+0

Затем вы должны отредактировать вопрос и четко объяснить свою проблему. Сейчас неясно. –

ответ

0

Вы можете ссылаться на именованный группу в замещающей строке с синтаксисом \g<field name>. Поэтому ваш код должен быть указан как:

new_text = re.sub(r'\[(?P<index>[0-9]+)\]', '(Found pattern the \g<index> time', text) 
Смежные вопросы