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

本文关键字:获取 字符串 -根 条件 正则表达式 | 更新日期: 2023-09-27 18:20:27

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

id名称类型环境

这会给我这样的东西:

  • 123456_MyName_x_dev
  • 123456_其他名称_y_dev

基本上是基于我需要获得名称的类型。与其进行字符串解析和子字符串,我更愿意使用正则表达式来完成这项工作。如果type=x,则提取名称

有没有一种简单的regex方法可以做到这一点?

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

        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;
        }

如果类型=x,则应该获得名称,当然可以将其更改为匹配类型=y

获取如下类型:

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