興味深い C# 文字列分割の問題に直面しています。キー/値のペアに分割する必要がある以下のデータがあります。問題は、データ自体がスペース文字でうまく区切られないことです。
サンプルデータ:
Somefield1:500 Somefield2:atextfield Somefield3:a text field with spaces Somefield4:102 Somefield5whichisblank: somefeild6:m0redata somefeild7:(1,2,3 5)
私が使用しようとしているアプローチは、正規表現分割を使用して区切りスペース文字と一致します。
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
}
問題は私の正規表現にあります。解決策は近いと思いますが、現在、フィールド間のスペースが一致しています。 gskiner の例はこちら.
「中間」スペースと一致しないように正規表現を修正するのを手伝ってくれる人がいる場合、またはスーパーになる代替方法を提供してくれる場合。
再度、感謝します。