Ich arbeite an einer C # -Anwendung. Ich möchte Zahl Dezimalzahl mit Komma (,) ändern, wo ich Punkt (.) Mit regulären Ausdruck.
Zum Beispiel:
%Vor%Als diese internationale Regel der Darstellung numerischer Werte, aber ich Schweden haben sie verschiedene Möglichkeiten für Zahlen wie
%Vor%Also möchte ich Punkt (.) in Komma (,) und Komma (,) in Punkt (.) mit RegEx ändern. Könnte mich dazu führen.
Beim Formatieren von Zahlen sollten Sie die Zeichenfolgenüberladung verwenden, die eine CultureInfo
Objekt. Der Kulturname für Schwedisch ist "sv-SE", wie man hier sehen kann.
Bearbeiten :
Wie @OregonGhost darauf hinweist - das Auswerten von Zahlen sollte auch mit CultureInfo
erfolgen.
Nicht sicher, was 100,00,56 bedeutet, meintest du 10.000,56?
Um deine Frage zu beantworten:
Warum sollte RegEx für so eine einfache Aufgabe verwendet werden? Du kannst es viel einfacher machen:
%Vor% Bearbeiten
Ich stimme @Oded zu, für die Formatierung von Zahlen verwende die Klasse CultureInfo
.
Keine RegEx-Lösung, aber aus meiner Erfahrung - richtiger:
%Vor% Was macht diese Methode? Es stellt sicher, dass, wenn die angegebene Zeichenfolge inkorrekt ist, die schwedische Zeichenfolge, aber das korrekte Englisch ist - konvertieren Sie sie nach Schweden, z. 100,00 -> 100,00
aber 100.00 -> 100,00
.
Verlasse dich nicht auf RegExp für diese Art von Sache :) Benutze die Build-Kulturen fx:
%Vor%en-US wird es korrekt analysieren, und da-DK verwendet die andere Art der Darstellung. Ich lebe in DK und nutze das, aber du solltest die Kultur verwenden, die zu deinem Output passt.
Tags und Links .net c# regex cultureinfo decimal-point