(\d+(?:\.\d+)?)\D*$
- cette regex extrait le prix de n'importe quelle chaîne avec le point décimal, mais je veux extraire le point décimal seulement quand il y a quelque chose mais pas zéro comme quand 300.50 ou 300.25 alors le point décimal devrait être extrait mais s'il est 300.00 alors le point décimal ne doit pas être extrait, que faire?Regex pour le prix
C'est ok, ou une meilleure solution est là?
Match match = Regex.Match(cellRecord, @"(\d+(?:\.\d+)?)\D*$");
price = match.Groups[1].Value.ToString().Trim();
if (price.Substring(price.Length - 3, 3) == ".00")
{
price = price.Replace(".00", "");
}
Je me demande quelle est la syntaxe de '(?: \. \ D +)' ... si vous pouvez le rendre plus communément utilisé regex, (plus d'expression régulière "régulière" ...) peut-être plus de gens connaissent la réponse . –
Ne serait-il pas préférable de le charger dans un Decimal (Decimal.Parse (...)) et de décider du format de la chaîne lors de sa sortie? Analyse syntaxique vs modèle de domaine vs présentation, un peu. – sisve