正则表达式-C#替换SQL通配符
我有一些与EF Core的正则表达式-C#替换SQL通配符,c#,regex,tsql,replace,wildcard,C#,Regex,Tsql,Replace,Wildcard,我有一些与EF Core的EF.函数一起工作的输入,比如 因此,我可能会收到这样的输入%some_text%,其中通配符是%和 我需要把它交给另一个不是SQL的过滤机制,这里只有*通配符 因此,上面的内容将变成*一些*文本* 但是,SQL可以像这样转义其通配符%some[]te\u t[%],应转换为*some\u te*t% 如何使用C#使用Regex进行替换?您可以使用2个捕获组,并检查组2是否有值。如果不是,则返回组1的值,该值捕获方括号之间的值 由于支架本身是匹配的,因此它们不是更换件的
EF.函数一起工作的输入,比如
因此,我可能会收到这样的输入%some_text%
,其中通配符是%
和
我需要把它交给另一个不是SQL的过滤机制,这里只有*
通配符
因此,上面的内容将变成*一些*文本*
但是,SQL可以像这样转义其通配符%some[]te\u t[%]
,应转换为*some\u te*t%
如何使用C#使用Regex进行替换?您可以使用2个捕获组,并检查组2是否有值。如果不是,则返回组1的值,该值捕获方括号之间的值 由于支架本身是匹配的,因此它们不是更换件的一部分
\[([%_])\]|([%_])
|
示例代码
string[] strings = {
"%some_text%",
"%some[_]te_t[%]"
};
foreach (String s in strings) {
var result = Regex.Replace(
s,
@"\[([%_])\]|([%_])", match =>
match.Groups[2].Success ? "*" : match.Groups[1].Value
);
Console.WriteLine(result);
}
输出
*some*text*
*some_te*t%
我补充了一个可能会有帮助的答案,但是你能补充一下你尝试过的问题吗?我想我读了这个问题,看到了所有的括号和星号,我认为那里有一个模式:-)