Fondamentalement, vous voulez chercher toutes les séquences de chiffres se terminant éventuellement par un point décimal et une autre séquence de chiffres, puis ajoutez un 'c'. Voici un exemple, en supposant que vous utilisez Perl (votre question ne dit pas):
$_ = 'treand60(12.3)/1010 + 1 >1010';
s/\b\d+(?:\.\d+)?/$&c/g;
print; # output is "treand60(12.3c)/1010c + 1c >1010c"
\d+
est 1 ou plusieurs chiffres, puis \.\d+
est 1 ou plusieurs chiffres après la virgule. Le (?: ...)
est un non-capturing group. Le dernier ?
signifie "correspondre à zéro ou à l'un de ceux-ci" (c'est-à-dire facultatif). Et le \b
signifie correspondre seulement sur les frontières de mot (ceci empêche quelque chose comme "Hello123" de correspondre parce que le nombre vient directement après un caractère de mot).
Voici le C# équivalent:
using System.Text.RegularExpressions;
// ...
string input = "treand60(12.3)/1010 + 1 >1010";
Regex regex = new Regex(@"\b\d+(?:\.\d+)?");
string output = regex.Replace(input, (m) => m.Value + 'c');
Console.WriteLine(output); // prints "treand60(12.3c)/1010c + 1c >1010c"
L'expression lambda dans l'appel Regex.Replace est un MatchEvaluator qui obtient simplement le texte du match et ajoute un 'c'.
Que considérez-vous comme un jeton pour vos objectifs? – Amber
tout ce qui est séparé par un opérateur arithmétique ou logique ou() – mustafabar