繁体   English   中英

正则表达式保留部分字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM