我有2个数组,如下所示。我只需要$ b中那些名字不在$ a中的元素。可以看出,$ a和$ b上的元素名称不相同。$ b有全名而$ a只有一部分名称。
$a="rohit","shikar","virat","ravindra"
$b="rohit : sharma","shikar : dhawan","virat : kohli","ajinx : rahane","ravi : ashwin"
我试图遍历$ b并使用像-contain,-match这样的运算符,但这些运算符不起作用。
答案 0 :(得分:0)
使用正则表达式:
$a="rohit","shikar","virat","ravindra"
$b="rohit : sharma","shikar : dhawan","virat : kohli","ajinx : rahane","ravi : ashwin"
$a_regex = ‘(?i)(‘ + (($a |foreach {[regex]::escape($_)}) –join “|”) + ‘)’
$b -notmatch $a_regex
ajinx : rahane
ravi : ashwin
如果你知道$ a中不存在可能需要转义的正则表达式元字符,那么它可以很简单:
$a="rohit","shikar","virat","ravindra"
$b="rohit : sharma","shikar : dhawan","virat : kohli","ajinx : rahane","ravi : ashwin"
$a_regex = $a -join '|'
$b -notmatch $a_regex
ajinx : rahane
ravi : ashwin