1

我有一个字符串..让我们说:

string MyString = "SELECT Stuff FROM Table WHERE Code = "Foo" AND DATE=20120101";

我想20120101?. 但是,20120101我搜索的字符串并不总是相同的。它总是以 a 开头2,并且总是包含 8 个字符。可能是 20121225、20130510 等。

我可以以某种方式使用通配符吗?如:

string Fixed = MyString.Replace("2*******", "?");

我正在寻找的是这个结果:

MyString = "SELECT Stuff FROM Table WHERE Code = "Foo" AND DATE=?";
4

4 回答 4

4

您可以使用正则表达式:

Regex.Replace(input,@"DATE=""\d*""", "?");

但是,如果这是一个 SQL 查询,最好使用参数化查询来避免 SQL 注入攻击等。这是做这些事情的行业标准方式。

于 2013-01-30T16:50:46.723 回答
3
string Fixed = Regex.Replace( MyString, @"DATE=2\d{7}", "DATE=?" ); 

或者,使用积极的后视

 Replace( MyString, @"(?<=DATE=)2\d{7}", "?" ); 
于 2013-01-30T17:19:23.483 回答
0

您可以使用正则表达式替换方法:

    string oldstring = "20120101";
    string newstring = Regex.Replace(oldstring, @"^2[0-9]{7}", "?");
于 2013-01-30T16:55:47.977 回答
0

这就是你要找的吗?

string MyString = "SELECT Stuff FROM Table WHERE Code = {0} AND DATE={1}";

这将允许您在 {0} 和 {1} 中使用与您想要的任何内容相同的字符串,例如:

String.Format(MyString, codeString, dateString);

您可以使用您想要的任何参数重用查询字符串。

于 2013-01-30T17:07:15.907 回答