Regex:忽略字段之间的空白

本文关键字:之间 空白 字段 Regex | 更新日期: 2023-09-27 18:27:48

我面临一个有趣的C#字符串分割问题。我有以下数据,我需要将其拆分为键/值对。问题是数据本身不能很好地对空格字符进行定界。

样本数据:

Somefield1:500 Somefield2:atextfield Somefield3:a text field with spaces Somefield4:102 Somefield5whichisblank: somefeild6:m0redata somefeild7:(1,2,3     5)

我尝试使用的方法是使用regex split匹配分隔空间字符:

var lineOfText = @"Somefield1:500 Somefield2:atextfield Somefield3:a text field with spaces Somefield4:102 Somefield5whichisblank: somefeild6:m0redata somefeild7:(1,2,3     5)"
foreach (string match in Regex.Split(lineOfText, @"'s(?=[^')]*(?:'(|$))").Where(s => s != String.Empty))
      {
       // Split into key / value pairs here
      }

问题出在我的正则表达式上。我认为这个解决方案很接近,但它目前在字段之间匹配空格。这里是gskinner的例子。

如果有人能帮助修复我的正则表达式,使其与"中间"空格不匹配,或者提供一种超级的替代方法。

再次感谢。

Regex:忽略字段之间的空白

尝试使用此正则表达式:'s(?='w+:)