无法将正则表达式模式表单文件解析为 powershell 中的变量
unable to parse regex pattern form file to the variable in powershell
我正在寻找文件夹名称是否符合 powershell 中的以下正则表达式模式。
- 检查前 4 个字母是 HOST。
- 根据 c:\shortnameslist.csv 中的短名称检查接下来的 3 或 4 个字母。
- 检查最后三个字母是否为 END。
#$shortname = (Import-Csv "c:\shortnameslist.csv")
$foldername = "FOLDERABSNAME"
$regex = '\b^(HOST)($shortname)(END)\b'
$文件夹名-匹配$regex
问题:
如何从正则表达式模式的 csv 列表中解析中间部分“短名称”。
谢谢
将 CSV 中的短名称值与正则表达式 'OR' 符号“|”相结合
转义任何可能的正则表达式特殊字符
$shortname = (Import-Csv -Path 'c:\shortnameslist.csv' | ForEach-Object { [regex]::Escape($_.shortname) }) -join '|'
$regex = "^HOST($shortname).*END$"
$foldername = 'HOSTIFS-blahblahEND' # "FOLDERABSNAME"
$foldername -match $regex # --> True
如果这个 returns $true,那么可以在 $matches[1]
中找到匹配的短名称
如果比较需要区分大小写,把-match
改成cmatch
我正在寻找文件夹名称是否符合 powershell 中的以下正则表达式模式。
- 检查前 4 个字母是 HOST。
- 根据 c:\shortnameslist.csv 中的短名称检查接下来的 3 或 4 个字母。
- 检查最后三个字母是否为 END。
#$shortname = (Import-Csv "c:\shortnameslist.csv")
$foldername = "FOLDERABSNAME"
$regex = '\b^(HOST)($shortname)(END)\b'
$文件夹名-匹配$regex
问题:
如何从正则表达式模式的 csv 列表中解析中间部分“短名称”。 谢谢
将 CSV 中的短名称值与正则表达式 'OR' 符号“|”相结合
转义任何可能的正则表达式特殊字符
$shortname = (Import-Csv -Path 'c:\shortnameslist.csv' | ForEach-Object { [regex]::Escape($_.shortname) }) -join '|'
$regex = "^HOST($shortname).*END$"
$foldername = 'HOSTIFS-blahblahEND' # "FOLDERABSNAME"
$foldername -match $regex # --> True
如果这个 returns $true,那么可以在 $matches[1]
如果比较需要区分大小写,把-match
改成cmatch