文字列をコンマとスペースで分割する正規表現を試しました。式は、1 つだけを除くすべてのケースに一致します。私が試したコードは次のとおりです。
List<string> strNewSplit = new List<string>();
Regex csvSplit = new Regex("(?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*)", RegexOptions.Compiled);
foreach (Match match in csvSplit.Matches(input))
{
strNewSplit.Add(match.Value.TrimStart(','));
}
return strNewSplit;
CASE1: "MYSQL,ORACLE","C#,ASP.NET"
期待される出力:
「MySQL、オラクル」
「C#、ASP.NET」
結果:合格
ケース 2: "MYSQL、ORACLE"、"C#、ASP.NET"
期待される出力:
「MySQL、オラクル」
「C#、ASP.NET」
実際のアウトプット:
「MySQL、オラクル」
"C#
ASP.NET」
結果: 失敗。
2 つの DoubleQuotes の間のコンマの後にスペースを入れると、適切な出力が得られませんでした。何か不足していますか?より良い解決策を提供してください。