powershell - 将数组匹配到多个正则表达式(来自数组)
问题描述
我有一个字符串数组,让我们说
$data = @(
"Haus",
"Maus",
"Laus",
"Schnitzel",
"Elefant"
)
我想根据数组中的多个正则表达式对其进行检查。
$regexChecks = @(
".*aus.*",
".*fant.*"
)
我尝试过这样的事情
$test = $data |? {$regexChecks -notmatch $_}
Write-Host $test
我希望只有字符串“Schnitzel”作为输出。
解决方案
您可以将正则表达式作为字符串。这只会返回Schnitzel
$data = @(
"Haus",
"Maus",
"Laus",
"Schnitzel",
"Elefant"
)
$Regex = '.*Schnitzel.*'
$test = $data | ? { $_ -match $Regex }
Write-Host $test
如果您想检查多个正则表达式,请使用|
分隔它们
这将输出Schnitzel
和Maus
$Regex = '.*Schnitzel.*|.*Maus.*'
这将返回Schnitzel
,Maus
和Laus
Haus
$Regex = '.*Schnitzel.*|.*aus.*'
编辑:
您还可以有一个正则表达式数组,并将它们加入|
:
$RegexArray = @(
'.*Schnitzel.*',
'.*Maus.*'
)
$Regex = $RegexArray -join '|'
$test = $data | ? { $_ -match $Regex }
推荐阅读
- c++ - c++20 中是否弃用了 volatile 限定符?
- progressive-web-apps - shopware-pwa 初始化中的安装错误
- javascript - 如何防止graphql错误并在模式中按标量类型进行突变?
- smpp - 具有多个部分的 SMS 每个部分可以有不同的结果吗
- exception - Spring Cloud Stream Kafka Stream - 如何处理运行时异常?
- python - Scikit-learn 预测器的类型提示
- python - 在未安装软件包的情况下打开 .py 脚本的方法?(点)
- python - Python 3.7.7 安装 Numpy “错误:命令出错,退出状态为 1:”
- angular - 从功能模块 ngrx 更改根状态属性
- arrays - 赛普拉斯 - 查找具有相同名称的多个元素