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