如何搜索文件特定的XML代码模式

时间:2015-10-09 23:29:17

标签: python regex xml parsing

我必须为以下字符串patern搜索文件(大约2000),我使用 grep 执行以下操作:

grep -irn ".acu" .

响应将是100行,具有以下模式:

<cf_query Query="DSSQuery" Program="qdss.acu" xxx>

然后我将检查找到的行(上面)是否被xml标记包围如下(xxx无关紧要)

<cfif IsDefined("REQUEST.<STRING>") xxx>
    <cfmodule 
        template="xxx" 
        Service="xxx" 
        Action="xxx" 
        QueryString="xxx"
        ReturnVariable="xxx">
<cfelse>
    <cf_query Query="DSSQuery" Program="qdss.acu" xxx>
</cfif>

如果是,那么我提取<STRING>然后我用字符串做一些事情。

我熟悉Lex-Yacc,也看了PLY,但看起来有点矫枉过正。我可以获得一个指针从哪里开始,以及任何有效的方法来实现我的目标。

1 个答案:

答案 0 :(得分:1)

您可以使用外观标签,例如。 https://regex101.com/r/wF3nD3/2

(?s)(?<= ReturnVariable="xxx">\n<cfelse>\n)PATTERN(?=\n</cfif>)

其中

  • (?s)用于单线模式
  • (?&lt; = ....)lookbehind pattern
  • (?= .....)lookahead pattern