Ersetzen Sie Punkt (.) durch Komma (,) mit RegEx?

7

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.

    
Mohsin JK 04.08.2010, 09:44
quelle

6 Antworten

23

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.

%Vor%

Bearbeiten :

Wie @OregonGhost darauf hinweist - das Auswerten von Zahlen sollte auch mit CultureInfo erfolgen.

    
Oded 04.08.2010, 09:48
quelle
5

Sehen Sie sich auch

an %Vor%     
Grozz 04.08.2010 09:50
quelle
4

Sie können dies auch ohne Regex tun. Zum Beispiel

%Vor%     
sukru 04.08.2010 09:48
quelle
4

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 .

    
scripni 04.08.2010 09:50
quelle
4

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 .

    
abatishchev 04.08.2010 10:00
quelle
3

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.

    
Lasse Espeholt 04.08.2010 09:54
quelle