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

问题描述 投票:-1回答:1

我在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. 第一场比赛:1
  2. 第二场比赛:Mario
  3. 第三场比赛:Italiana

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

python regex python-3.x
1个回答
1
投票

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

"query = INSERT INTOdba2018b15.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'
© www.soinside.com 2019 - 2024. All rights reserved.