连接和拆分字符串

时间:2014-05-15 15:45:05

标签: c# .net string escaping

也许这是一个愚蠢的问题。但我还没有找到答案。 我有一些字符串。我想连接它们然后在不同的时刻拆分结果字符串。我想知道.NET Framework中是否有可用的东西。 String的Join和Split方法工作得很好。问题是转义分隔符。

例如,我想使用" @"作为分隔符。如果我有" String1"," Str @ ing2"和" String3",我想获得" String1 @ Str @@ ing2 @ String3"。

有什么东西可以满足我的需要或者我必须编写自己的功能吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

在途中逃离分隔符。

var inputs = ["String1", "Str@ing2", "String3"];
var joined = string.Join(inputs.Select(i => i.Replace("@", "@@"));

然后,您可以拆分单@个字符。

var split = Regex.Split(joined, "(?<!@)@(?!@)");

这使用零宽度负向lookbehind / lookahead patterns@不是另一个@之前和之后断言字符。您应该对@位于输入字符串的开头或结尾的情况运行一些测试。

答案 1 :(得分:0)

在将每个字符串传递给.Replace("@", "@@")

之前调用.Join