C# “拆分并附加”;及;价值之间

C# “拆分并附加”;及;价值之间,c#,split,C#,Split,如何在值下方拆分、在值之间追加和? 我不能用空格分隔,因为单词之间有空格 "\"Mark John\" \"Tina Roy\"" as "\"Mark John\" AND \"Tina Roy\"" 最后看起来应该是这样的- "Mark John" AND "Tina Roy" 感谢您的帮助 string operatorValue = " AND "; if (!string.IsNullOrEmpty(operatorValue)) { foreach (string se

如何在值下方拆分、在值之间追加和? 我不能用空格分隔,因为单词之间有空格

"\"Mark John\" \"Tina Roy\""
as
"\"Mark John\" AND \"Tina Roy\""
最后看起来应该是这样的-

"Mark John" AND "Tina Roy"
感谢您的帮助

string operatorValue = " AND ";

if (!string.IsNullOrEmpty(operatorValue))
{
    foreach (string searchVal in SearchRequest.Text.Split(' '))
    {
        if (!string.IsNullOrEmpty(searchVal))
            searchValue += searchVal + operatorValue;
    }
}

int index = searchValue.LastIndexOf(operatorValue);

if (index != -1)
{
    outputSearchValue = searchValue.Substring(0, index);
}

或使用正则表达式:

var test = "\"John Smith\" \"Bill jones\" \"Bob Norman\"";      
Console.WriteLine(Regex.Replace(test, "\" \"", "\" AND \""));

不要拆分,而是将
替换为
”和“

试一试

如果你有不止一个名字,或者两个名字之间可能有不止一个空格,你可以选择正则表达式

var result = Regex.Replace(str,"\"\\s+\"","\" And \"");
例如

var str = "\"Mark John\"   \"Tina Roy\"   \"Anu Viswan\"";
var result = Regex.Replace(str,"\"\\s+\"","\" And \"");
输出

"Mark John" And "Tina Roy" And "Anu Viswan"

使用另一个分隔符来确定名称是否结束。或者将名称存储在数组或列表中。之后,可以使用String.Join来连接元素
var str = "\"Mark John\"   \"Tina Roy\"   \"Anu Viswan\"";
var result = Regex.Replace(str,"\"\\s+\"","\" And \"");
"Mark John" And "Tina Roy" And "Anu Viswan"