我必须搜索以下字符串模式的文件(大约 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/