我有一个如下的字符串:
{{"textA","textB","textC"}}
目前,我正在使用下面的代码来拆分它们:
string stringIWantToSplit = "{{\"textA\",\"textB\",\"textC\"}}";
string[] result = stringIWantToSplit.Split(',');
我可以得到以下结果:
{{"textA"
"textB"
"textC"}}
之后,我可以手动删除'{'和'}'以获得最终结果,但问题是:
如果字符串如下:
`{{"textA","textB,textD","textC"}}`
那么结果会和预期的结果不一样
预期结果:
"textA"
"textB,textD"
"textC"
实际结果:
{{“textA”
"文本B
文本D"
“textC”}}
如何获取两个双引号之间的字符串?
更新:
刚才查资料的时候发现有些是小数点即
{{"textA","textB","",0,9.384,"textC"}}
目前,我正在尝试使用 Jenish Rabadiya 的方法,我使用的正则表达式是
(["'])(?:(?=(\\?))\2.)*?\1
但是使用这个正则表达式,没有选择数字,如何修改它以便可以选择数字/小数?
最佳答案
尝试像下面这样使用正则表达式。
Regex regex = new Regex(@"([""'])(?:(?=(\\?))\2.)*?\1");
foreach (var match in regex.Matches("{{\"textA\",\"textB\",\"textC\"}}"))
{
Console.WriteLine(match);
}
这里正在工作 dotnet fiddle => Link
关于C# 获取字符串中两个字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336320/