2017-11-20 1 views
0

.Net Regex funktioniert nicht wie erwartet. Das Folgende sollte Erfolg $ True ergeben. Irgendwelche Ideen?.Net Regex von Powershell funktioniert nicht wie erwartet

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 : 

Erfolg = $ false? Was ist denn hier los?

jedoch die folgende C# -Code Sucesss berichtet:

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

Wenn ich diese C# -Code snipplet laufen, es meldet Erfolg.

Antwort

0

Fehlalarm. Ich habe gerade gemerkt, dass ich die Argumente gewechselt habe.

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: 
Verwandte Themen