Powershell正则表达式查询



到目前为止,我已经提出了以下

$String = "[EXTERNAL] +^ test 1"

$String = "+^ RE: test 2"
if ( ($String -match "^[EXTERNAL]s+^") -or ($String -match "^+^") ) { write-host "Match" }

问题-如何正确匹配以下内容?

$String =  "FW: [EXTERNAL] +^ test 2"

所以任何包含"+^"但不包含"^[EXTERNAL]s+^""^+^"的字符串

任何已拨付的援助。。

如果我理解正确,你想匹配任何字符串:

  • 包含+^AND
  • 不以+^AND开头
  • 不是以[EXTERNAL] +^开头

希望这是正确的。。。

因此,我可能会做这样的事情:

$tests = @(
"[EXTERNAL] +^ test 1"
"+^ RE: test 2"
"FW: [EXTERNAL] +^ test 2"
)
foreach ($inp in $tests) {
if ($inp -match '+^' -and $inp -notmatch '^(?:+^|[EXTERNAL]s+^)') {
Write-Host "Test case '$inp' matched"
}
else {
Write-Host "Test case '$inp' did not match"
}
}

使用一个正则表达式是可能的,但当您掌握了整个编程语言时,这通常会更复杂,所以我建议使用两个这样的条件语句(如果您想拆分第二个条件语句,则使用3(。

最新更新