String.Split剪切分隔符

时间:2011-12-16 13:15:58

标签: c#

是否可以在不剪切字符串分隔符的情况下使用String.Split?

例如我有字符串

convertSource = "http://www.domain.com http://www.domain1.com";

我想构建数组并使用下面的代码

convertSource.Split(new[] { " http" }, StringSplitOptions.RemoveEmptyEntries)

我得到这样的数组

[1] http://www.domain.com
[2] ://www.domain1.com

我想保留http,看起来String.Split不仅可以分隔字符串而且还可以切断分隔符。

3 个答案:

答案 0 :(得分:4)

这是正则表达式的尖叫:

Regex regEx = new Regex(@"((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)");
Match match= regEx.Match("http://www.domain.com http://www.domain1.com");

IList<string> values = new List<string>();
while (match.Success)
{
     values.Add(match.Value);
     match = match.NextMatch();
}

答案 1 :(得分:2)

string[] array = Regex.Split(convertSource, @"(?=http://)");

答案 2 :(得分:1)

那是因为您使用" http"作为分隔符。

试试这个:

string separator = " ";
convertSource.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

Split方法的工作方式是,当它提供它时,它会将它切断,并从字符串中删除分隔符。

根据你的意思,你要做other ways来分割保留分隔符的字符串,然后如果你只想从字符串中删除前导或尾随空格,那么我会建议你使用{{ 1}}方法:.Trim()