Я должен иметь возможность разбить прочитанную строку кода с помощью File.ReadLines () на ';' когда я получил что-то подобное в исходном коде (две или более строк кода в одной строке):
string firstString = "xyzxyz"; string secodnString = "zyxzyx";
проблема в том, что внутри этих строк может быть другая; или даже ", а затем эта строка:
string firstString = "xyz;xyz\"inside quote\""; string secondString =
"zyx;zyx";
прочитано выглядит так:
"string firstString = \"xyz;xyz\\\"inside quote\\\"\"; string secondString
= \"zyx;zyx\";
Итак, я решил, что смогу определить, '' ' находится внутри строки из-за разницы в \ "и \\" по Regex, но я не могу понять, как соответствовать \ ", но не соответствует \\", я пытался:
"[^\\\\]\"" or "[^\\]\""
но это не работает. Спасибо в andvace.
РЕДАКТИРОВАТЬ, моя единственная проблема - регулярное выражение, остальное я уже написал так:
List<string> vrlSplitedLine = vrlLines[i].Trim().Split(';').ToList();
List<string> vrlFinallSplitedLine = new List<string>();
string vrlReatachedString = string.Empty;
for(int j = 0; j < vrlSplitedLine.Count; j++)
{
if(Regex.Matches(vrlSplitedLine[j], "[^\\\\]\"").Count % 2 != 0)
{
vrlReatachedString = vrlSplitedLine[j];
int k = j;
do
{
k++;
vrlReatachedString = vrlReatachedString + ';' + vrlSplitedLine[k];
}
while (Regex.Matches(vrlSplitedLine[k], "[^\\\\]\"").Count % 2 == 0);
vrlFinallSplitedLine.Add(vrlReatachedString);
j = k;
}
else
{
vrlFinallSplitedLine.Add(vrlSplitedLine[j]);
}
}