Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/55: Рейтинг темы: голосов - 55, средняя оценка - 4.96
2 / 2 / 1
Регистрация: 08.11.2019
Сообщений: 79

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

11.11.2019, 23:08. Показов 10945. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru