C# 排除正则表达式结果中字符串的第一个和最后一个引号

C# 排除正则表达式结果中字符串的第一个和最后一个引号,c#,regex,C#,Regex,我正在运行一个小c#程序,需要从字符串中提取转义引号 linqpad中的示例代码: string s = "action = 0;\r\ndir = \"C:\\\\folder\\\\\";\r\nresult"; var pattern = "\".*?\""; var result = Regex.Split(s, pattern); result.Dump(); 输入(实际输入包含更多转义偶数引号): 预期结果 "C:\\folder\\" 实际结果结果(2项) 我得到的正是我所需要

我正在运行一个小c#程序,需要从字符串中提取转义引号

linqpad中的示例代码:

string s = "action = 0;\r\ndir = \"C:\\\\folder\\\\\";\r\nresult";
var pattern = "\".*?\"";
var result = Regex.Split(s, pattern);
result.Dump();
输入(实际输入包含更多转义偶数引号):

预期结果

"C:\\folder\\"
实际结果结果(2项)


我得到的正是我所需要的。如何使正则表达式忽略实际字符串的起始(和结束)引号?为什么它会将它们包括在搜索中?我使用了SO问题中的正则表达式,但仍然没有得到预期的结果。我只想通过转义引号进行筛选。

您不需要正则表达式。只需使用
String.Split(“;”)
第二个数组元素将具有所需的路径。然后,您可以
Trim()
it以除去引号,并
Remove()
以除去
ndir
部分。比如:

result = s.Split(';')[1].Trim("\r ".ToCharArray()).Remove(0, 7).Trim('"');

不要使用
Regex.Split
,请尝试
Regex.Match

Regex.Split
用于将字符串一分为二并删除匹配的表达式。谢谢!看起来我是在追求这个:
var result=Regex.Matches(s,pattern)
"action = 0;
dir =  "
_____
";
result"
result = s.Split(';')[1].Trim("\r ".ToCharArray()).Remove(0, 7).Trim('"');