2 / 2 / 1
Регистрация: 08.11.2019
Сообщений: 79

Переменная внутри регулярного выражения. Как вставить?

11.11.2019, 23:08. Показов 10968. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Есть работающее регулярное выражение -
Python
1
2
3
lookName = r'Name.:.([\w\ _-]*?Bogdan[\w\ _-]*?)'
 
searchName = re.findall(lookName, searchsource)
Нужно цель поиска (имя) задать в виде переменной, которая будет вводиться.

Пробовал сделать это объединением строк -
Python
1
2
3
4
Name = Bogdan #( ) Введённое имя
look1 =  r'Name.:.([\w\ _-]*? #( Первая часть регулярки )
look2 = [\w\ _-]*?)' #( Вторая часть регулярки )
lookName = look1 + Name + look2 #( Собираем в единую строку )
По всем хелпам, документации, советам и т.д. это должно работать.

Распечатав lookName в любом месте программы мы видим правильную строку для поиска. т.е. она не меняется и не портится.
Но поиск не работает. Никаких ошибок, никаких сообщений.

Может быть кто-то сталкивался с подобной задачей и может подсказать как её реализовать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2019, 23:08
Ответы с готовыми решениями:

Переменная внутри регулярного выражения
function Moscow () { var fcity = document.getElementById('100'); var length = window.words.length; var re = new...

Сравнение групп внутри регулярного выражения
Допустим есть рег. выражение вида (?<m1>{2})(?<m2>{2}) мне нужно в самов выражении проверить, если m1>m2, ну или хотя бы они равны,...

Можно ли внутри самого регулярного выражения использовать функции
Здравствуйте! Я бы хотела спросить, можно ли внутри самого регулярного выражения использовать функции заданные раньше? Например, функцию...

3
531 / 180 / 39
Регистрация: 18.08.2012
Сообщений: 907
11.11.2019, 23:20
Цитата Сообщение от TheBogdan Посмотреть сообщение
Name = Bogdan
это вы так строку задаёте?
или... всё же
Python
1
Name = "Bogdan"
1
2 / 2 / 1
Регистрация: 08.11.2019
Сообщений: 79
11.11.2019, 23:25  [ТС]
Как только отправил сообщение, сразу же пришла мысль и, как оказалось, правильная

в re нужно передавать строку без индекса r
Python
1
2
3
4
5
неправильно
r'Name.:.([\w\ _-]*?Bogdan[\w\ _-]*?)'
 
правильно
Name.:.([\w\ _-]*?Bogdan[\w\ _-]*?)
Нигде почему-то это не уточнялось, а сам сразу не додумался.
Вопрос закрыт. Извините за беспокойство.

Добавлено через 1 минуту
Цитата Сообщение от untyped Посмотреть сообщение
или... всё же
Да, в программе так и есть, просто при наборе поста пропустил.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.11.2019, 10:03
Лучший ответ Сообщение было отмечено TheBogdan как решение

Решение

Ничё не понял, но так должно работать:

Python
1
2
name = 'Bogdan'
searchName = re.findall(r'([\w\ _-]*?{}[\w\ _-]*?)'.format(name), searchsource)
Добавлено через 1 минуту
Или так:
Python
1
r'([\w\ _-]*?%s[\w\ _-]*?)' % (name,)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2019, 10:03
Помогаю со студенческими работами здесь

Как распарсить строку с помощью регулярного выражения
Как распарсить строку такого вида? "слово - любое_слово любое_слово - слово", где любых слов может быть сколько угодно и они разделены...

Как должна выглядеть формула регулярного выражения?
Добрый день! Ситуация: есть прайс, из которого нужно вытащить только габариты товара. Предполагается использование регулярных выражений в...

Как обратиться к 1-ому из элементов регулярного выражения
Доброго времени суток. Не могу понять как обратиться к 1-ому из элементов регулярного выражения.Проще я вожу 01.01.2011 пример проверяеться...

Как вывести результат работы регулярного выражения?
Приветствую, комрады. Стандартный кусок кода, показывающий работу с регекспом: Sub qwe() Dim str_in As String str_in =...

Как из регулярного выражения построить конечный автомат?
У меня есть регулярное выражение: ^?*?(??)*(?+)?$. Как мне из него построить конечный автомат? В теории все строят из регулярной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru