我希望能够在 SQL 语句中找到绑定变量(以冒号开头,然后是文本):
SELECT *
FROM TABLE
WHERE TABLE_UID = :TABUID AND TABLE_TEXT = :TEXT
我发现这个正则表达式可以找到绑定变量:
Regex reg = new Regex(":[\\w]*",
RegexOptions.Multiline & RegexOptions.IgnoreCase);
foreach (Match m in reg.Matches(sql))
{
bindVar.Add(m.Value);
}
我无法弄清楚的是如何忽略引号中存在的潜在绑定变量:
SELECT *
FROM TABLE
WHERE TABLE_UID = :TABUID AND TABLE_TEXT = TO_DATE(:TEXT, 'hh:mi:ss')
:mi & :ss 不应在正则表达式中匹配。