C# 如何将一个字符串拆分为另一个字符串?

C# 如何将一个字符串拆分为另一个字符串?,c#,C#,我有一个以下格式的字符串 “测试字符串1测试字符串2测试字符串3 我想用“”字符串拆分它 使用下面的语句,它给出了我想要的输出 "TestString 1 <^> TestString 2 <^> Test String3" .Split("<^>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) “测试字符串1测试字符串2测试字符串3” .Split(“.tocharray(),StringSp

我有一个以下格式的字符串

“测试字符串1测试字符串2测试字符串3

我想用“”字符串拆分它

使用下面的语句,它给出了我想要的输出

"TestString 1 <^> TestString 2 <^> Test String3"
 .Split("<^>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
“测试字符串1测试字符串2测试字符串3”
.Split(“.tocharray(),StringSplitOptions.RemoveEmptyEntries)

但是如果我的字符串包含“或”^“在文本中的任何地方,那么上面的分割语句也会考虑到


您知道如何仅为“”字符串拆分吗?

使用
ToCharArray
您说的是“在这些字符中的任何一个上拆分”;要在序列上拆分
您必须使用接受
字符串[]
的重载:

string[] parts = yourValue.Split(new string[]{"<^>"}, StringSplitOptions.None);
string[]parts=yourValue.Split(新字符串[]{”“},StringSplitOptions.None);
或者在C#3中:

string[]parts=yourValue.Split(新[]{”“},StringSplitOptions.None);

尝试另一种重载的
拆分方法:

public string[] Split(
    string[] separator,
    StringSplitOptions options
)
因此,在您的情况下,它可能看起来像:

var result = 
    yourString.Split(new string[] {"<^>"},StringSplitOptions.RemoveEmptyEntries);
var结果=
拆分(新字符串[]{”“},StringSplitOptions.RemoveEmptyEntries);

希望,这会有所帮助。

编辑:正如其他人已经指出的那样:String.Split对于您的用例来说有一个很好的重载。下面的答案仍然是正确的(就像在工作中一样),但不是正确的方向


这是因为这个string.Split重载接受一个分隔符数组。每个分隔符都会分割字符串

你想要:

Regex Regex=newregex(@“);
string[]substring=regex.Split(“TestString 1 TestString 2 TestString 3”);
和-旁注:

"<^>".ToCharArray()
“”.ToCharArray()
这真的只是一种花哨的说法

new[]{'<', '^', '>'}
new[]{'}

String3?我刚开始搜索一个新的未知类。不过是输入错误,对吗?)@Benjamin-我把它误读为源变量名(格式可能更清晰…)。澄清为
yourValue
-更好?当然。不管怎样,我还是用正则表达式+1。Split从一开始就很愚蠢。这里你真的不需要正则表达式,但你应该避开字符串开头的符号:
@Kobi:谢谢。我真的没想到会这样,还以为我只需要在字符组中转义^显然,是正确的。固定的职位。相反的,字符组是你通常不需要逃避角色的地方。@ Kobi:但是^开始了一个负面字符组——所以我想到了这个用法,并不知何故假设它不会在正文中间充当锚。我的坏。再次感谢。
"<^>".ToCharArray()
new[]{'<', '^', '>'}