如何从特定单词中删除部分字符串?



下面是我的sql查询:

select * from Table where col1 = @param1 and col2 = @param2

现在我想从 where 子句中删除所有内容,因此预期的输出如下所示:

select * from Table;

法典:

string str = "select * from Table where col1 = @param1 and col2 = @param2";
var str = sqlQuery.Replace("where", ""); // select * from Table col1 = @param1 and col2 = @param2

一种方法是使用IndexOfSubstring.

var sql = "select* from Table where col1 = @param1 and col2 = @param2";
var index = sql.IndexOf("where", StringComparison.OrdinalIgnoreCase);
var newSql = sql.Substring(0, index);

您也可以使用Trim来删除末尾的空格。这看起来像。

var newSql = sql.Substring(0, index).Trim();

我在 @Mighty Badaboom 提供的答案的帮助下创建了下面的扩展方法。

static public string Foo(this string original,string wordToFind, StringComparison stringComparision = StringComparison.OrdinalIgnoreCase)
{
var index = original.IndexOf("where", stringComparision);
return original.Substring(0, index).Trim();
}
string newSql = Foo(str, "where", StringComparison.OrdinalIgnoreCase);

最新更新