正则表达式拆分:需要帮助模式

时间:2012-02-08 08:54:08

标签: c# .net regex

我有点坚持这个。 我有一个像

这样的字符串
18=abcd1, 19=jghrt23, 20=outut

我必须以这样的方式拆分给定的字符串,以便获得18,19,20的列表。

我能做的最好的事情是=(.*\w,)[^\D+=],但显然它不起作用,

注意:我可以通过首先使用“,”然后使用“=”来使用string.split轻松完成,但我想使用正则表达式以便我能够学习它。 我想使用Regex.Split

2 个答案:

答案 0 :(得分:3)

我认为Split不适合这项任务。

使用:

var result = Regex.Matches(input, @"\d+(?==)").Cast<Match>().Select(s => s.Value);

答案 1 :(得分:0)

AFAIK你不能用一个正则表达式做你想要的,或者至少你不能得到个别的团体。您可以使用两个步骤:

  1. 获取下一个以逗号分隔的元素,例如使用正则表达式^(\d+=\w*),(.*)$为此,您需要将剩余的字符串存储在某处以处理更多元素。
  2. 使用^(\d+)=\w+$从一个元素中提取数字并将其存储在某处。
  3. PS:我假设在 = 之后你只有字母数字字符。