我其實誤解了這一問題最初,檢查支架和刪除它們
基本上我有檢查是否存在錯誤,並檢查了某些可怕的角色,這將打破它,但是這是不行的與括號,我需要基本檢查是否有任何括號內的字符串之前,通過SQL傳遞,如果有,直接從字符串中刪除它們。
例如說我有一個字符串,它看起來像
[I am a magical string with super powers!){
我要刪除所有這些可怕的括號!
if (compiler.Parser.GetErrors().Count == 0)
{
AstNode root = compiler.Parse(phrase.ToLower());
if (compiler.Parser.GetErrors().Count == 0)
{
try
{
fTextSearch = SearchGrammar.ConvertQuery(root, SearchGrammar.TermType.Inflectional);
}
catch
{
fTextSearch = phrase;
}
}
else
{
fTextSearch = phrase;
}
}
else
{
fTextSearch = phrase;
}
string[] errorChars = errorChars = new string[]
{
"'",
"&"
};
StringBuilder sb = new StringBuilder();
string[] splitString = fTextSearch.Split(errorChars, StringSplitOptions.None);
int numNewCharactersAdded = 0;
foreach (string itm in splitString)
{
sb.Append(itm); //append string
if (fTextSearch.Length > (sb.Length - numNewCharactersAdded))
{
sb.Append(fTextSearch[sb.Length - numNewCharactersAdded]); //append splitting character
sb.Append(fTextSearch[sb.Length - numNewCharactersAdded - 1]); //append it again
numNewCharactersAdded++;
}
}
string newString = sb.ToString();
//Union with the full text search
if (!string.IsNullOrEmpty(fTextSearch))
{
sql.AppendLine("UNION");
sql.AppendLine(commonClause);
sql.AppendLine(string.Format("AND CONTAINS(nt.text, '{0}', LANGUAGE 'English')", newString));
}
檢查出['System.String.IndexOf'方法](HTTP:// MSDN。 microsoft.com/en-us/library/kwb0bwyd.aspx)。 – 2012-07-25 13:43:54
每次都是兩個相同的字符嗎? – Brian 2012-07-25 13:44:32
它只適用於括號I.E – 2012-07-25 13:44:47