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

标签 python regex xml parsing

我必须搜索以下字符串模式的文件(大约 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但似乎有点矫枉过正。我能否得到一个指示,从哪里开始,以及任何有效的方法来实现我的目标。

最佳答案

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

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

哪里

  • (?s) 用于单行模式
  • (?<= ....) 后向模式
  • (?= .....) 前瞻模式

关于python - 如何搜索文件特定的 XML 代码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33048552/

相关文章:

python - C 编译器从各种 unix 风格的源代码构建 python

Java解析带有附加数据的xml文件

ruby - 使用 Ruby 编辑 XML

python - 使用标准库的 Python 中的私有(private)/公共(public)加密

python - 错误 : Could not build wheels for PyNaCl which use PEP 517 and cannot be installed directly

c# - 使用 regex 或 ToDicitionary 获取 url

javascript - 快速正则表达式获取路径

Python 正则表达式 : issues in skipping delimiter between quotes

xml - 带参数的递归 XSL 模板调用

python - Pandas 查找时间比较