Is it possible to change the place of '$' char in a string according to its relative position to a number?
Example:
string input = "the price is 18$. It increased to 24.50$ ."
output = "the price is $18. It increased to $24.50 ."
CodePudding user response:
You can use Regex for this:
using System.Text.RegularExpressions;
// ...
string output = Regex.Replace(input, @"\b(\d (?:\.\d )?)\$", "$$$1");
Regex pattern details:
\b- Word boundary to make sure it's a standalone number.(- Start of capturing group #1.\d- One or more digits.(?:- Start of a non-capturing group.\.\d- A dot followed by one or more digits.
)- Close the non-capturing group.?- Make the previous group optional.
)- Close group #1.\$- Match a dollar sign.
Replacement details:
$$- Dollar sign.$1- Whatever was matched in group #1 (i.e., the number).
