如何更改正则表达式以处理数字后的 _ 符号
本文关键字:符号 数字 处理 何更改 正则表达式 | 更新日期: 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)
-DS
或GS
字符串(您可以将其替换为[DG]S
) -
'd+
- 1 位或更多位数字 -
(?:_v'd+)?
- 1 或 0(=可选)_
+v
+ '1 或多个数字的序列 -
$
- 字符串的结尾。