我有这个字符串:
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")
但它只想要一个字符。
答案 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
参数: