我必须为以下字符串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,但看起来有点矫枉过正。我可以获得一个指针从哪里开始,以及任何有效的方法来实现我的目标。
答案 0 :(得分:1)
您可以使用外观标签,例如。 https://regex101.com/r/wF3nD3/2
(?s)(?<= ReturnVariable="xxx">\n<cfelse>\n)PATTERN(?=\n</cfif>)
其中