我必须能够将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\";
所以我认为我可以确定';'由于正则表达式中\“和\\”的不同而在字符串内部,但是我无法弄清楚如何匹配\“但不匹配\\”我尝试过:
"[^\\\\]\"" 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]);
}
}