Powershell的.Net Regex没有按预期工作

时间:2017-11-20 16:50:42

标签: .net powershell

.Net Regex没有按预期工作。以下应该会成功$ true。任何想法?

PS C:\Users\john\Desktop\ser> $s = "N:3"

PS C:\Users\john\Desktop\ser> using namespace System.Text.RegularExpressions

PS C:\Users\john\Desktop\ser> $s
N:3
PS C:\Users\john\Desktop\ser> $m = [Regex]::Match("N:", $s)

PS C:\Users\john\Desktop\ser> $m

Groups   : {0}
Success  : False
Name     : 0
Captures : {}
Index    : 0
Length   : 0
Value    : 

成功= $ false?这是怎么回事?

然而,以下C#代码报告成功:

string s = "N:";
var m = Regex.Match("N:", s);
if (m.Success) {
    MessageBox.Show("Success!");
}
else {
    MessageBox.Show("No Match");
}

当我运行这个C#代码snipplet时,它报告成功。

1 个答案:

答案 0 :(得分:0)

误报。我才意识到我已经切换了参数。

PS C:\Users\john\Desktop\ser> $s = "N:3"

PS C:\Users\john\Desktop\ser> using namespace System.Text.RegularExpressions

PS C:\Users\john\Desktop\ser> $s
N:3

# Switch Arguments around
PS C:\Users\john\Desktop\ser> $m = [Regex]::Match($s, "N:")

PS C:\Users\john\Desktop\ser> $m

Groups   : {0}
Success  : True
Name     : 0
Captures : {0}
Index    : 0
Length   : 2
Value    : N: