Преобразовать немного сложное регулярное выражение в регулярное выражение Python - PullRequest
0 голосов
/ 10 декабря 2018

У меня проблема с запуском шаблона регулярных выражений на python.Я попробовал это на regex работает нормально на regexr.com хотя.

Это строка, над которой я буду работать

query = INSERT INTO `dba2018b15`.`Autori` (`CodiceA`, `Nome`, `Naz`) VALUES ('1', 'Mario', 'Italiana');

И этоэто шаблон:

pattern = \('(\w)', '(\w+)', '(\w+)'\);

Вывод, который я получаю от Python, таков:

None

Требуемый вывод должен возвращаться так:

('1', 'Mario', 'Italiana');
  1. Первое совпадение: 1
  2. Второе совпадение: Mario
  3. Третье совпадение: Italiana

Кто-нибудь знает, как структурировать шаблонправильно?Спасибо.

1 Ответ

0 голосов
/ 10 декабря 2018

на самом деле вы должны поставить строку запроса как =>

"query = INSERT INTO dba2018b15 . Autori ( CodiceA , Ном , Наз ) VALUES ('1', 'Mario', 'Italiana');"

этих веб-сайтовпринимает входные данные как строки, но мы должны ввести строку, если мы делаем regex на любом языке ..

, так что, возможно, это решение вашей проблемы ..

import re

pattern = r"\('(\w)', '(\w+)', '(\w+)'\)";

matches = re.findall(pattern, "query = INSERT INTO `dba2018b15`.`Autori` (`CodiceA`, `Nome`, `Naz`) VALUES ('1', 'Mario', 'Italiana');")

print(matches[0]) # prints a tuple ('1', 'Mario', 'Italiana')

# later if you want individual items

indv1 = matches[0][0] # '1'
indv2 = matches[0][1] # 'Mario'
indv3 = matches[0][2] # 'Italiana'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...