Parece que el operador PowerShell -split y el método .NET Split() actúan completamente diferente.
.NET trata las cadenas de separación como si fueran matrices de caracteres..NET String Split()
$str = "123456789"
Write-Host ".NET Split(): "
$lines = $str.Split("46")
Write-Host "Count: $($lines.Length)"
$lines
$str = "123456789"
Write-Host "-split operator: "
$lines = $str -split "46"
Write-Host "Count: $($lines.Length)"
$lines
Salida:
.NET Split():
Count: 3
123
5
789
-split operator:
Count: 1
123456789
¿Hay alguna manera de hacer que una aplicación .NET utilizar la misma técnica que la PowerShell, y utilizar el separador de cadena como una unidad sólida? Con suerte, sin RegEx.
Gracias.
EDIT: Esto funcionó en PowerShell, utilizando la división():
Write-Host "Divided by 46:"
"123456789".Split([string[]] "46", [StringSplitOptions]::None)
Write-Host "`n`nDivided by 45:"
"123456789".Split([string[]] "45", [StringSplitOptions]::None)
Divided by 46:
123456789
Divided by 45:
123
6789
¡Extraño! Lo bueno es que no uso Powershell; p – leppie