将一个复杂的小正则表达式转换为python正则表达式

我在python上运行正则表达式模式时遇到问题 . 我已经尝试过了正则表达式在regexr.com上工作正常 .

这是我将要处理的字符串

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

这就是模式:

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

我从python获得的输出是这样的:

None

所需的输出应返回如下:

('1', 'Mario', 'Italiana');
  • 第一场比赛: 1

  • 第二场比赛: Mario

  • 第三场比赛: Italiana

有谁知道如何以正确的方式构建模式?谢谢 .

回答(1)

2 years ago

实际上你应该把查询字符串作为=>

"query = INSERT INTO dba2018b15 . Autori ( CodiceA , Nome , Naz ) 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'