.net 开关-Powershell中的Regex $source |%{ 开关-正则表达式($\ux){ '\(.+)\' { $primaryKeyValue=$matches[1];continue;} }
我想在switch regex中使用动态键值,这可能吗?您可以使用自动展开变量的字符串:.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 |%
$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 :-)
}