正则表达式 - 提取子字符串

时间:2016-05-04 11:54:15

标签: c# regex

我有一个字符串,

"{'Name':'AllSecurityUpdates-Today' , 'Value':'test'}"

我想将Name的值提取为AllSecurityUpdates-Today,将Value的值提取为test。请帮我一个正则表达式。

3 个答案:

答案 0 :(得分:3)

兄弟 对于javascript和c#中的情况,使用 JSON 而不是正则表达式。

的javascript:

var a = {Name:'AllSecurityUpdates-Today', Value:'test'};
var name = a.Name;
var val = a.Value;

C#:

使用属性Name和Value

创建一个对象
var a = new JavaScriptSerializer().Deserialize<YourObject>("{'Name':'AllSecurityUpdates-Today' , 'Value':'test'}")

答案 1 :(得分:1)

试试这个

            string input = "{'Name':'AllSecurityUpdates-Today' , 'Value':'test'}";
            string pattern = @":\'(?'name'[^\']+)[^\:]+:\'(?'value'[^\']+)";

            Match match = Regex.Match(input, pattern);
            Console.WriteLine("Name = {0}, Value = {1}", match.Groups["name"].Value, match.Groups["value"].Value); 

答案 2 :(得分:0)

c#c​​ode

private static string ExtractJist(string freeText)
{
StringBuilder patternBuilder = new StringBuilder();
patternBuilder.Append(@"Name: (?<name>.*$)\n").Append("Value: (?<value>.*$)\n");
Match match = Regex.Match(freeText, patternBuilder.ToString(), RegexOptions.Multiline | RegexOptions.IgnoreCase);
string name= match.Groups["name"].ToString();
string value= match.Groups["value"].ToString();
return string.Concat(name, "|", value);
}

按如下方式调用方法:

string source = @"name: AllSecurityUpdates-Today
value: test";
string extracted = ExtractJist(source);