Stefan Reuther schrieb:
>> "aeiouäöü" -replace '[\u0080-\uffff]', ''
>>
>> sollte eigentlich die Ausgabe
>>
>> aeiou
>>
>> erzeugen, tatsächlich erhalte ich aber
>>
>> aeou,
>>
>> d.h. das 'i' wird ebenfalls gelöscht.
>
> Arbeitet das Ding zufälligerweise case-insensitive, und kann man
> ihm das abgewöhnen?
In der Tat erhalte ich mit
"aeiouäöü" -creplace '[\u0080-\uffff]', ''
das gewünschte Ergebnis. Danke!
Auch in den .NET-Klassen kann man den Unterschied zwischen
Console.Out.WriteLine(Regex.Replace("aeiouäöü", "[\u0080-\uffff]", "", RegexOptions.IgnoreCase))
einerseits und
Console.Out.WriteLine(Regex.Replace("aeiouäöü", "[\u0080-\uffff]", ""))
bzw.
Console.Out.WriteLine(Regex.Replace("aeiouäöü", "[\u0080-\uffff]", "", RegexOptions.None))
andererseits nachvollziehen.
> 'i' hat neben dem Großbuchstaben 'I', den wir alle kennen, auch
> noch den Großbuchstaben 'İ' (\u0130).
Das wird sicher die Ursache sein, entsprechend liefert
"i" -match "\u0130"
ja auch $True.
--
“Microsoft … has now thrown the old customer base under the bus by
designing an operating system that removes a powerful PC's benefits
in order to work better on smaller devices.”
— Jakob Nielsen,
http://www.useit.com/alertbox/windows-8.html