我怎样才能分割一个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 : //www.dotnetperls.com/split和解决scheme可以是这样的:
var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);