正则表达式 - 根据条件从字符串中获取值

时间:2013-06-28 11:20:06

标签: c# regex

我有一个用下划线分隔的字符串:

id_name_type_environment

这会给我这样的东西:

  • 123456_MyName_x_dev
  • 123456_AnotherName_y_dev

基本上基于我需要获取名称的类型。我不想做字符串解析和子字符串,而是使用正则表达式来执行此操作,如果type = x则提取名称

有一种简单的正则表达式吗?

2 个答案:

答案 0 :(得分:1)

        Regex regex = new Regex(".*_(.*)_x_.*");
        string incomingValue = @"123_NAME_x_dev";
        string inside = null;
        Match match = regex.Match(incomingValue);

        if (match.Success)
        {
            inside = match.Groups[1].Value;
        }

如果type = x,这应该得到名称,您可以将其更改为匹配type = y当然

答案 1 :(得分:0)

获取如下类型:

var value = Regex.Match("123456_MyName_x_dev", @"(?<=^\w+_\w+_)\w+(?=_\w+$)").Value

得到这样的名字:

var value = Regex.Match("123456_MyName_x_dev", @"(?<=^\w+_)\w+(?=_\w+_\w+$)").Value