[英]Regular expression to retain part of the string
我有一串以下的
{"pid":{"source":"Doc","name":"pid","value":"8180"},
"cid":{"source":"Doc","name":"cid","value":null},
"fid":{"source":"Doc","name":"fid","value":"ME453REN0004"}}
我需要获取以下字符串
{"pid":"8180",
"cid":null,
"fid":"ME453REN0004"}
如何使用正则表达式呢?
您可以尝试以下方法:
"([^"]*)".*:([^{]*)\}(,|\})
样例代码 :
public class Test
{
public static void Main()
{
string pattern = @"""([^""]*)"".*:([^{]*)\}(,|\})";
string input = @"{""pid"":{""source"":""Doc"",""name"":""pid"",""value"":""8180""},
""cid"":{""source"":""Doc"",""name"":""cid"",""value"":null},
""fid"":{""source"":""Doc"",""name"":""fid"",""value"":""ME453REN0004""}}
";
string result="{";
foreach (Match m in Regex.Matches(input, pattern))
{
result+=m.Groups[1].Value+":"+m.Groups[2].Value+m.Groups[3]+"\n";
}
Console.WriteLine(result);
}
}
我认为您最好使用json解析器,但这是我的两分钱,如果出于某种原因,您必须为此使用正则表达式:
"name":("\w+"),"value":("?\w+"?)
请参阅regex101上的工作示例。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.