我試圖解析字符串:使用-match
使用`提取兩個字符串-match`
helo identity [email protected] Pass (v=spf1)
如下:
$line -match "helo identity (?<sender>.*) (?<heloresult>.*) (v=spf1)"
我認爲這將返回:
$matches['sender'] = "[email protected]"
$matches['heloresult'] = "Pass"
但是,它返回$false
。
值得關注的是以下按預期工作:
$line -match "helo identity (?<sender>.*) Pass"
PS C:\> $matches
Name Value
---- -----
sender [email protected]
0 helo identity [email protected] Pass
我在做什麼錯誤分配這兩個部分?
我想你應該逃避'括號(V = SPF1)'正確的正則表達式是:'HELO標識( *( *?)? )\(v = spf1 \)' –
fardjad
我同意@fardjad,您應該將其作爲答案發布。 – briantist