正则表达式将字符串划分为具有特殊分隔符的多个字符串

时间:2013-12-06 08:17:27

标签: c# regex

我需要正则表达式(c#)将字符串拆分为1或多个子字符串 不规则的分隔符,例如:

您好,[1]请帮助[1]我解决[1]正则表达式问题[1],谢谢。

分成5个数学:

  1. 您好,
  2. 请帮助
  3. 我解决这个问题
  4. 正则表达式问题
  5. ,谢谢。

3 个答案:

答案 0 :(得分:5)

这里不需要正则表达式。使用String.Split

 input.Split(new []{ "[1]" }, StringSplitOptions.RemoveEmptyEntries)

答案 1 :(得分:2)

string input = "Hello ,[1]Please Help[1]me resolving this[1]regex issue[1], Thank You.";
var parts = Regex.Matches(input, @"(.+?)(\[1\]|$)").Cast<Match>()
            .Select(m => m.Groups[1])
            .Select(m => new { m.Index, m.Length, m.Value })
            .ToList();

答案 2 :(得分:0)

而不是字符串,您可以使用如下所述的拆分功能:

string data = "Hello ,[1]Please Help[1]me resolving this[1]regex issue[1], Thank You.";
var arrayData = data.Split(new string[] { "[1]" }, StringSplitOptions.None);

并使用正则表达式:

string data = "Hello ,[1]Please Help[1]me resolving this[1]regex issue[1], Thank You.";
string[] substrings = Regex.Split(data, @"\[1\]");