首页 > 解决方案 > 将小复杂的正则表达式转换为 python 正则表达式

问题描述

我在 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

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

标签: pythonregexpython-3.x

解决方案


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

"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'

推荐阅读