如何使用多种模式处理Regex
本文关键字:处理 Regex 模式 何使用 | 更新日期: 2023-09-27 18:19:30
我有一个要求,我需要从access db读取一个查询,并修改该查询以将查询中的所有关键字替换为SQL可执行查询。。例如:假设有一个查询"从表1中选择密钥"
这里的"key"是一个保留关键字。它必须修改为"从表1中选择[key]"(这将在sql中工作)。
查询可能有多个关键字。。所以我有一个正则表达式如下。
string pattern = "Key|IN|ON|VIEW]";
Regex rgx = new Regex(pattern);
我有下面的代码。。检查图案。。
string pattern = "Key|IN|ON|VIEW]";
Regex rgx = new Regex(pattern);
string strModifiedQuery = string.Empty;
strModifiedQuery = strQueryText;
foreach (Match m in rgx.Matches(pattern))
{
Console.WriteLine(m.Value);
if (m.Value == "Key")
{
strModifiedQuery = rgx.Replace(strModifiedQuery, "[Key]");
}
if (m.Value == "IN")
{
strModifiedQuery = rgx.Replace(strModifiedQuery, "[IN]");
}
if (m.Value == "ON")
{
strModifiedQuery = rgx.Replace(strModifiedQuery, "[IN]");
}
在c#中有没有更好的方法来用合适的值替换匹配的模式?
var pattern = @"(?i)Key|IN|ON|VIEW";
var subject = "Select key from table1";
var result = Regex.Replace(subject, pattern, @"[$0]");
生成
Select [key] from table1
(?i)
打开忽略大小写并替换模式[$0]
替换由括号包围的匹配的内容。