Sql 在组a中找不到正则表达式查找字符串或在组b中找不到正则表达式查找字符串
我试图在SQL语句中查找cfml变量(由#anyvariable#标识),这些变量不在cfmlSql 在组a中找不到正则表达式查找字符串或在组b中找不到正则表达式查找字符串,sql,regex,coldfusion,Sql,Regex,Coldfusion,我试图在SQL语句中查找cfml变量(由#anyvariable#标识),这些变量不在cfml标记中,也不在cfml条件块中(由标识)。我已经编写了以下正则表达式: #任何变量#都可以在以下位置找到:(#[^##]+#) 内容可以通过以下内容找到:(?) 和(##########]+#)不在(?s)中(?一个选项可能是通过交替主动匹配“坏”序列,但不使用(?:)来“记住”,而您的“好”匹配最后运行并包含在捕获组中(): (?:)|(?:)|(#[^#]+#) 有两种方法可以做到这一点-一种方法
标记中,也不在cfml条件块中(由
标识)。我已经编写了以下正则表达式:
#任何变量#都可以在以下位置找到:(#[^##]+#)
内容可以通过以下内容找到:(?)
和(##########]+#)不在(?s)中(?一个选项可能是通过交替
主动匹配“坏”序列,但不使用(?:)
来“记住”,而您的“好”匹配最后运行并包含在捕获组中(
):
(?:)|(?:)|(#[^#]+#)
有两种方法可以做到这一点-一种方法是首先使用第二个正则表达式去除标记中的所有数据,然后搜索剩余的代码。另一种方法是使用负前瞻性,如这里演示的()参考HTML标记中没有的文本(一个足够类似的用例),我尝试了以下方法:(#[^#+#) (?![^|[^]*
FIND (#[^##]+#)
WHERE (#[^##]+#) NOT IN (?<=<cfqueryparam)(.*)(?=">)
AND (#[^##]+#) NOT IN (?s)(?<=<cfif).*?(?=<\/cfif>)
(?:<cfif.*?\/cfif>)|(?:<cfqueryparam.*?>)|(#[^#]+#)