如何使用字符串分隔符拆分字符串?

时间:2012-01-19 15:23:06

标签: c# string split

我有这个字符串:

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")

但它只想要一个字符。

7 个答案:

答案 0 :(得分:458)

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

如果您有一个字符分隔符(例如,),则可以将其减少为(注意单引号):

string[] tokens = str.Split(',');

答案 1 :(得分:27)

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

考虑"is Marco and"周围的空格。您想在结果中包含空格,还是要删除它们?您很可能希望将" is Marco and "用作分隔符...

答案 2 :(得分:18)

您要在相当复杂的子字符串上拆分字符串。我使用正则表达式而不是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");

答案 3 :(得分:12)

请尝试this 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);

答案 4 :(得分:8)

您可以使用IndexOf方法获取字符串的位置,并使用该位置和搜索字符串的长度将其拆分。


您还可以使用正则表达式。一个简单的google 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);
    }
  }
}

答案 5 :(得分:6)

阅读 C# Split String Examples - Dot Net Pearls ,解决方案可能类似于:

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

答案 6 :(得分:5)

有一个string.Split版本,它带有一个字符串数组和一个StringSplitOptions参数:

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