正则表达式获得NVP

时间:2012-09-25 20:52:51

标签: c# regex

是否有正则表达式会从下面的字符串中给出一个名称值对,如下所示:

statuscode = 179640000
new_Approved = 179640002

从:

&$filter=statuscode/Value eq 179640000 and new_Approved/Value eq 179640000

2 个答案:

答案 0 :(得分:1)

示例程序:

    public static void Main()
    {
        string src = "&$filter=statuscode/Value eq 179640000 and new_Approved/Value eq 179640000";
        Regex regex = new Regex(@"(\w*)/Value eq (\w*)");

        foreach (Match m in regex.Matches(src))
        {
            foreach (Group g in m.Groups)
            {
                Console.WriteLine(g.Value);
            }
        }
    }

给出以下输出

statuscode/Value eq 179640000
statuscode
179640000
new_Approved/Value eq 179640000
new_Approved
179640000
Press any key to continue . . .

比赛中每组的内容是:

  1. 比赛本身
  2. 值的名称
  3. 价值本身。
  4. 它假设所有名称和值都只是字母数字和'_',它还假定源字符串没有其他曲线球。

答案 1 :(得分:0)

^&filter=({[0-9a-zA-Z]+}/Value eq {[0-9a-zA-Z]+})( and )?)$

我认为这可以作为一般模板。您需要稍微修改语法以使用您正在使用的任何正则表达式引擎。