用单引号括起特定的单词
本文关键字:单词 单引号 | 更新日期: 2023-09-27 18:12:55
我在寻找一个简单的解决方案,用引号在字符串中引用文本。
例如:DATEDIFF(Minutes, Lead.WhenCreated, @Today)
需要更新为
DATEDIFF(Minutes, Lead.WhenCreated, '@Today')
如果源字符串已经有标记的引号,那么不应该做任何更改。字符串中可能有多个令牌,我不知道令牌的值是什么-只说它将以@字符开始。
我的环境是Visual Studio c# 2008。
希望有人能帮忙。
谢谢。
resultString = Regex.Replace(subjectString, @"(@'b'w+'b)", "'$1'");
你可以用这个。它将查找所有以@开头的单词,并在它们后面加上引号。
编辑:
resultString = Regex.Replace(subjectString, @"((?<!')@'b'w+'b)", "'$1'");
模式:
(?<!')(@'w+)
替换:
'$1'
看起来就像你在用c#代码构建一个SQL语句,然后自己替换参数。你最好使用这个方法…
DataReader rdr;
using (SqlConnection con = new SqlConnection(MY_CONNECTIONSTRING)
{
con.Open();
string sql = "SELECT DATEDIFF(Minutes, Lead.WhenCreated, @Today) FROM tbl";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.Parameters.AddWithValue("@Today", datDateValue);
rdr = cmd.ExecuteReader();
}
}
这种方法对于恶意SQL注入更安全。
这是一篇在c#中解决这个问题的文章