我正试图在一个有空格的字符串中添加一个反斜杠。我使用的是String.Format
方法。这是代码。
query = "Field1:Web Services";
var hasSpaces = query.Contains(" ");
if (hasSpaces)
{
var qfix = 'u005c' + " "
var newQueryString = query.Replace(" ", qfix);
}
我希望看到这样的字符串如果query = "Field1:Web Services";
则CCD_ 3但我看到的是"Field1:Web\ Services"
因此,对于需要在查询空间之前加上反斜杠的Lucene查询,这将不起作用。甚至使用删除反斜杠var newQueryString2 = newQueryString.Replace("\", @"");
不工作
顺便说一句,我曾尝试在查询参数周围使用双引号,但这样做时会得到转义反斜杠。所以
var query2 = string.Format("{0}:"{1}"", Field1, Field2);
给我Field1:"Field2"
,同样,带有反斜杠。
我不确定的是,为什么我可以在Linqpad中做这个小动作,但在VS.NET4.5应用程序中却没有得到相同的结果。
我在谷歌上搜索了很多方法,包括使用字符串文字和使用"\
",但我总是得到第二个反斜杠,无法使用查询删除。替换方法。为什么上面的代码在VS中不起作用,而在Linqpad这样的应用程序中起作用?
您是否尝试用"?"替换空格比如下面?
var parsed = query.Replace(" ", "?");
这可能会有所帮助。
请尝试以下操作:var qfix=@"\";