我想写一个正则表达式来拆分字符串,比如只选择几个元素。例如:M:SharesProfilesServerProfilesabcd.contoso.V2.01
我的目标是:
abcd.V2.01
,使得域名即'contoso'
被丢弃
但是,在找到匹配项后,我无法排除字符串的一部分。我试过
$original = 'M:SharesProfilesServerProfilesabcd.contoso.V2.01'
$modified = $original -replace '.*\([^\.]+.contoso.V2)[^\]*$', '$1'
返回$modified
作为'abcd.contoso.V2'
您可以使用两个捕获组:
$original = 'M:SharesProfilesServerProfilesabcd.contoso.V2.01'
$original -replace '.*\([^\.]*).contoso(.V2[^\]*)$', '$1$2'
# => abcd.V2.01
不要忘记转义正则表达式模式中的文字点。下面是上面regex的演示详细信息:
.*
-LF字符以外的任何零个或多个字符\
-一个字符
([^\.]*)
-组1($1
(:除和
.
之外的任何零个或多个字符.contoso
-.contoso
字符串(.V2[^\]*)
-组2($2
(:.V2
字符串,然后是除之外的任何零个或多个字符
$
—字符串结束