所以我需要用<cfqueryparam value="#var#" /><cfqueryparam value="#var2#" />替换#var#和#var2#。但是,仅当#var#包装在<cfquery></cfquery>内时才发生这种情况。

作为额外的条件,cfquery-tag将在哈希符号之前和之后包含文本。这是一个例子:

<cfquery datasource="#tablename#">
   SELECT * FROM table WHERE name = #var#, somethingelse = #var2#;
</cfquery>

我需要一个正则表达式,仅当'test'匹配时,它才位于两个哈希符号之间并且位于可能具有或不具有属性的cfquery-tag中。

我正在使用grepWin进行替换。

最佳答案

使用正则表达式的另一种解决方案:

您可以使用以下内容进行匹配:

(#[^#><]*#)(?=[^>]*<\/cfquery>)

并替换为:
<cfqueryparam value="$1" />

参见DEMO

09-12 01:33