排除引号内字符的C#正则表达式

排除引号内字符的C#正则表达式,c#,regex,string,split,C#,Regex,String,Split,我试图使用正则表达式将一行拆分为一个键/值对。有谁能给我一个关于如何正确分割下面这条线的提示吗 这行代码如下所示: "key"="some=value" 我想把它分成: key some=value 我必须读取一个字符串资源文件,如下所示: "key1"="translation number one"; "key2"="translation number = the second number"; 当我做一个 string[] elements = Regex.Slit(

我试图使用正则表达式将一行拆分为一个键/值对。有谁能给我一个关于如何正确分割下面这条线的提示吗

这行代码如下所示:

"key"="some=value"
我想把它分成:

key  
some=value

我必须读取一个字符串资源文件,如下所示:

"key1"="translation number one";  
"key2"="translation number = the second number";   
当我做一个

string[] elements = Regex.Slit(line, "=");  

我得到了3个元素,而不是我想要的2个。因此,基本上我想在引号外的“=”处拆分,假定每行的单键=值

^"(?<key>[^"]+)"="(?<value>.*)"$
^“(?[^”]+)”=“(?*”)$

首先为两端的引号(
)去掉字符串。然后使用正则表达式拆分字符串:

string []splits = Regex.Split(input.Trim('"'), "\\s*\"\\s*=\\s*\"\\s*");

你能分享你的代码吗?你到底在哪里被卡住了?
mystring.Split(“\”);
返回
string[]
,元素1和3包含你想要的值。这里不需要正则表达式。总是有相同的行,键总是空的,后面是“=”。我必须读取一个字符串资源文件,它看起来像这样:
code
“key1”=“translation number 1”; “键2”=“翻译编号=第二个编号”;当我做一个Regex.Slit(line,“=”)时,我得到了3个元素,而不是我想要的两个。因此,基本上我想在引号外的“=”处拆分。如果字符串包含引号,可能会发生什么情况?@SimonBelanger我相信默认情况下这是贪婪的,但以防万一,我们可以使其具体化……我在发表评论后意识到,可能会出现这种情况,尤其是
^
$
的情况。明确地处理引号的转义字符就像
(?([^“]\\”)+
一样简单。如果您的数据有转义引号怎么办?为什么不在C#中使用内置的反序列化方法呢?