Laden...

isLetter including Umlaute,französische Zeichen usw.

Erstellt von Ploetzi vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.858 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 10 Jahren
isLetter including Umlaute,französische Zeichen usw.

Hallo,
ich möchte gern prüfen, ob im row[5] Buchstaben sind, aber auch Umlaute , franz. Zeichen etc., nur keine Zahlen und andere Sonderzeichen:

  if (!row[5].All(Char.IsLetter))  

So funktioniert es nicht, das geht nur auf die Buchstaben.

Grüsse,

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Ploetzi,

die Doku sagt:

Gibt an, ob das angegebene Unicode-Zeichen als Unicode-Buchstabe kategorisiert wird.

Darunter sollten eigentlich auch Umlaute und Buchstaben mit Akzentzeichen darunter fallen. Die beiden folgenden Zeilen geben jedenfalls true aus:

Console.WriteLine (Char.IsLetter ('ä'));
Console.WriteLine (Char.IsLetter ('à'));

Versucht mal herauszufinden, welches Zeichen genau das Problem macht.

herbivore

G
141 Beiträge seit 2011
vor 10 Jahren

Kann man sowas nicht mit Regex lösen?

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Gnozo,

klar, kann man.

Vermutlich meinst du \w.

Allerdings kommt es auch da darauf an, welche Zeichen als Wortzeichen angesehen werden. Und das hängt wiederum von den Optionen für reguläre Ausdrücke ab, insbesondere von RegexOptions.ECMAScript (siehe ECMAScript-Vergleichsverhalten) und RegexOptions.CultureInvariant (siehe Vergleiche mit der invarianten Kultur).

Es ist also bei Regex in diesem Fall nicht unbedingt einfacher oder klarer als bei Char.IsLetter.

herbivore