我需要使用 c# 替换给定文本中的某些值,最好使用正则表达式
输入:这是示例文本。我需要用新值替换 $100.00 值。
输出:这是示例文本。我需要用新值替换 $50.00 的值。
需要更换 $100 到 $50
注意:数字应该是任意大小
解决方案:这适用于我的要求
Regex.Replace("这是示例文本。我需要用新值替换 $100.00 值。", "\$\d+(\.\d+)?" , "50", RegexOptions.IgnoreCase)
如果您要替换常量值,则不需要正则表达式:
string output = text.Replace("$100", "$50");
如果您事先不知道数字,您可以使用正则表达式,但您需要弄清楚您想要什么模式。这是一个匹配美元符号后跟一个或多个数字,然后是小数点,然后是另外两个数字的示例:
string output = Regex.Replace(input, @"\$\d+\.\d{2}", "$50.00");
您将需要此using
语句才能使上述代码正常工作:
using System.Text.RegularExpressions;
您应该修改正则表达式以满足您的需要。您可能需要考虑需要匹配的所有输入:
根据您对这些问题的回答,您将需要调整正则表达式。
你应该可以使用这个:
RegEx rex = new RegEx("\\$\\d+\\.\\d\\d");
然后只需使用替换功能。
rex.Replace(input, "$50.00");
如果您需要能够确定要动态替换的值,请根据匹配的数字查看MatchEvaluator。
这用可选的十进制值替换任何值:
Regex.Replace( s, @"\$\d+(\.\d+)?", "$50" )