相关疑难解决方法(0)

Powershell,内置的交叉设置?

对于某些人需要从一堆松散的字母中找到字谜的游戏,我最终实现了一种排列算法,以找到所有可能的字谜,并根据已知字母位置的需要过滤那些(-match顺便说一下,这很棒).但是对于更长的单词,这被证明非常容易出错,因为略读一大堆乱码并不能真正揭示隐藏在其中的正确单词.

所以我想如果我有一个大的英文单词列表(应该可以在某处获得),我可以将我的排列列表与正确的单词列表相交,并获得(希望)来自排列列表的所有真实单词.

由于PS中的许多操作员对集合的工作方式不同,我认为我可以做类似的事情

$wordlist -contains $permlist
Run Code Online (Sandbox Code Playgroud)

然后回到路口.不幸的是,这并不容易.我想到的其他选项是迭代一个列表并-contains为每个项目执行:

$permlist | ? { $wordlist -contains $_ }
Run Code Online (Sandbox Code Playgroud)

这可能会起作用,但也很慢,我认为(尤其是当$wordlista的结果时gc wordlist.txt).或者我可以建立一个巨大的正则表达式:

$wordlist -matches (($permlist | %{ "^$_`$" }) -join "|")
Run Code Online (Sandbox Code Playgroud)

但这也许不会很快.我也许可以使用findstr上面巨大的正则表达式,但这感觉是错的.

有没有我可以使用的内置解决方案,这比我到目前为止的尝试更好?否则我可能会将单词列表放入哈希表并使用迭代-contains方法,该方法应该足够快.

powershell intersection set

6
推荐指数
1
解决办法
5712
查看次数

标签 统计

intersection ×1

powershell ×1

set ×1