如何更改正则表达式以处理数字后的 _ 符号

本文关键字:符号 数字 处理 何更改 正则表达式 | 更新日期: 2023-09-27 17:57:15

我想要一个可以匹配以下名称的正则表达式:

Standard_DS1_v2 Standard_DS2_v2 ... Standard_DS15_v2

Standard_DS1 Standard_DS2 ... Standard_DS14

Standard_GS1 Standard_GS2 ... Standard_GS5

现在我有以下正则表达式:

private const string PremiumStorageRoleSizesRegex = @"^Standard_((DS)|(GS))'d+$";
machineSizeMetadatas = machineSizeMetadatas.Where(metadata => Regex.IsMatch(metadata.Name, PremiumStorageRoleSizesRegex));

但我不知道如何处理第一个序列(Standard_DS1_v2)。

如何更改我的正则表达式?

如何更改正则表达式以处理数字后的 _ 符号

您可以将此正则表达式与可选组一起使用:

^Standard_(DS|GS)'d+(?:_v'd+)?$
                    ^^^^^^^^^^

或者更简单^Standard_[DG]S'd+(?:_v'd+)?$以避免交替组。查看正则表达式演示

您可以在任何需要的地方添加捕获组。

图案详情

  • ^ - 字符串的开头
  • Standard_ - 文本Standard_子字符串
  • (DS|GS) - DSGS字符串(您可以将其替换为[DG]S
  • 'd+ - 1 位或更多位数字
  • (?:_v'd+)? - 1 或 0(=可选)_ + v + '1 或多个数字的序列
  • $ - 字符串的结尾。