我怎样才能分割一个string与string分隔符?

可能重复:
如何在C#中使用多字符分隔符分割string?

我有这个string:

My name is Marco and I'm from Italy 

我想分割它,分隔符is Marco and ,所以我应该得到一个数组

  • My name在[0]和
  • I'm from Italy [1]。

我怎样才能用C#做到这一点?

试过

 .Split("is Marco and") 

但它只需要一个字符。

 string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None); 

如果你有一个单独的字符分隔符(例如, ),你可以减less它(注意单引号):

 string[] tokens = str.Split(','); 
 .Split(new string[] { "is Marco and" }, StringSplitOptions.None) 

考虑一下"is Marco and"的空间。 你想在结果中包含空格,还是要删除空格? 你很想用" is Marco and "作为分隔符。

你正在分裂一个相当复杂的子string的string。 我会使用正则expression式而不是String.Split。 后者更多用于标记文本。

例如:

 var rx = new System.Text.RegularExpressions.Regex("is Marco and"); var array = rx.Split("My name is Marco and I'm from Italy"); 

试试这个function 。

 string source = "My name is Marco and I'm from Italy"; string[] stringSeparators = new string[] {"is Marco and"}; var result = source.Split(stringSeparators, StringSplitOptions.None); 

您可以使用IndexOf方法来获取string的位置,并使用该位置以及searchstring的长度来分割它。


你也可以使用正则expression式。 一个简单的谷歌search结果与此

 using System; using System.Text.RegularExpressions; class Program { static void Main() { string value = "cat\r\ndog\r\nanimal\r\nperson"; // Split the string on line breaks. // ... The return value from Split is a string[] array. string[] lines = Regex.Split(value, "\r\n"); foreach (string line in lines) { Console.WriteLine(line); } } } 

有一个string.Split的版本,它接受一个string数组和一个StringSplitOptions参数:

http://msdn.microsoft.com/en-us/library/tabh47cf.aspx

阅读这个: http : //www.dotnetperls.com/split和解决scheme可以是这样的:

 var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);