Sie Katze regex Muster versuchen Oder Sie konnten dieses versuchen:
$string = 'subdomain1.google.nl'
[io.path]::GetFileNameWithoutExtension($string)
Ausgabe:
subdomain1.google
Eigentlich! Ich war so gespannt, was die beste Perfomance weise Methode wäre, und erraten, was:
$results = @()
for ($i=1;$i -le 1000;$i++){
$obj = New-Object PSObject
$obj | Add-Member -MemberType NoteProperty -Name 'Execution #' -Value $([int]$i)
$obj | Add-Member -MemberType NoteProperty -Name 'IOPath_Ticks' -Value $(Measure-Command -Expression {[System.IO.Path]::GetFileNameWithoutExtension('subdomain1.google.nl')} | Select -ExpandProperty Ticks)
$obj | Add-Member -MemberType NoteProperty -Name 'Regex_Ticks' -Value $(Measure-Command -Expression {'subdomain1.google.nl' -replace '\.[^.]*?$'} | Select -ExpandProperty Ticks)
$results += $obj
}
Durchschnittliche
$results | Measure-Object -Property IOPath_Ticks -Average
Count : 1000
Average : 129,978
Sum :
Maximum :
Minimum :
Property : IOPath_Ticks
$results | Measure-Object -Property Regex_Ticks -Average
Count : 1000
Average : 364,56
Sum :
Maximum :
Minimum :
Property : Regex_Ticks
Summe
$results | Measure-Object -Property IOPath_Ticks -Sum
Count : 1000
Average :
Sum : 129978
Maximum :
Minimum :
Property : IOPath_Ticks
$results | Measure-Object -Property Regex_Ticks -Sum
Count : 1000
Average :
Sum : 364560
Maximum :
Minimum :
Property : Regex_Ticks
So, wie Sie sehen können, wenn Sie brauchen, um eine große Anzahl von Datensätzen verarbeiten Verwendung von .NET-Klassen würde am besten im Vergleich zu Regexen
' 'subdomain1.subdomain2.facebook.com' -replace '\. [^.] *? $'' –