首页 文章

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

提问于
浏览
-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

  • 第二场比赛: Mario

  • 第三场比赛: Italiana

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

1 回答

  • 1

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

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

相关问题