使用[regex]
类型加速器后,Options 属性为 ReadOnly 且无法更改。但是您可以使用 RegexOptions 参数调用构造函数:
$regex = [System.Text.RegularExpressions.Regex]::new('^([0-9]{1,20})(b|kb|mb|gb|tb)$','IgnoreCase')
要传递多个选项,请对基础值使用按位或运算符:
$regex = [regex]::new('^([0-9]{1,20})(b|kb|mb|gb|tb)$',[System.Text.RegularExpressions.RegexOptions]::Multiline.value__ -bor [System.Text.RegularExpressions.RegexOptions]::IgnoreCase.value__)
但简单的加法似乎也有效:
[System.Text.RegularExpressions.RegexOptions]::Multiline + System.Text.RegularExpressions.RegexOptions]::IgnoreCase
它甚至可以在提供数字标志 (35 = IgnoreCase=1 + MultiLine=2 + IgnorePatternWhitespace=32) 时工作,尽管直接依赖枚举值通常不是最佳实践:
$regex = [regex]::new('^([0-9]{1,20})(b|kb|mb|gb|tb)$',36)
$regex.Options