.net 开关-Powershell中的Regex $source |%{ 开关-正则表达式($\ux){ '\(.+)\' { $primaryKeyValue=$matches[1];continue;} }

.net 开关-Powershell中的Regex $source |%{ 开关-正则表达式($\ux){ '\(.+)\' { $primaryKeyValue=$matches[1];continue;} },.net,vb.net,powershell,powershell-2.0,.net,Vb.net,Powershell,Powershell 2.0,我想在switch regex中使用动态键值,这可能吗?您可以使用自动展开变量的字符串: $source |% { switch -regex ($_){ '\<'+$primaryKey+'\>(.+)\</'+$primaryKey+'\>' { $primaryKeyValue = $matches[1]; continue; } } 您还可以使用显式与大括号进行正则表达式匹配的表达式;请参阅关于开关的帮助您可以使用自动展开变量的字符串: $source |%

我想在switch regex中使用动态键值,这可能吗?

您可以使用自动展开变量的字符串:

$source |% {
switch -regex ($_){
'\<'+$primaryKey+'\>(.+)\</'+$primaryKey+'\>' { 
$primaryKeyValue = $matches[1]; continue; }

}

您还可以使用显式与大括号进行正则表达式匹配的表达式;请参阅
关于开关的帮助

您可以使用自动展开变量的字符串:

$source |% {
switch -regex ($_){
'\<'+$primaryKey+'\>(.+)\</'+$primaryKey+'\>' { 
$primaryKeyValue = $matches[1]; continue; }

}

您还可以使用表达式显式地与大括号进行正则表达式匹配;请参阅
关于开关的帮助

在本例中,我将使用
('.+)'-f$primaryKey)而不是连接字符串。@ Stj:谢谢,这也是一个很好的变体;我在In中添加了:-SITJ:我认为在这种情况下内联变量更可读……但是我对代码可读性的态度也不时地改变:-在这种情况下,我将使用<代码>(‘(+)’-F $ PRIMARYKEY键)而不是连接字符串。@ Stj:谢谢,这也是一个很好的变体;我在In中添加了:-SITJ:我认为在这种情况下内联变量更可读……但是我对代码可读性的态度也不时地改变:
switch -regex (...) {
    ('<'+$primaryKey+'>(.+)</'+$primaryKey+'>') { ... }
    ('<{0}>(.+)</{0}>' -f $primaryKey) { ... } # thanks, stej :-)
}