寻找数字的replace()通配符

时间:2019-05-29 00:45:44

标签: c# replace

我不是C#专家,我只从事了几个月。

我有一个令牌@Html.Raw(Model.Prices.SitePrice.Text),其中显示了一种产品的价格(9.99美元)

我需要从令牌中删除$符号,所以我放上@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", ""))

一切正常,问题是当我对该产品应用特殊的/ promotion时,它将令牌更改为显示:

<strike>$9.99</strike> $7.99,它应该在工作后显示7.99

我希望使用通配符删除<stike>$##.##</strike>,以处理罢工之间的任何数字。

为此文本编写.replace()的最佳方法是什么? (必须内联Google模式数据)

我尝试过:

@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", "").Replace("<strike>[\r\n]+</strike> ", ""))

@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", "").Replace("<strike>(.*)</strike> ", ""))

7个不同的迷信?

<strike>$9.99</strike> $7.99它应显示7.99

<strike>$10.99</strike> $8.99它应显示8.99

<strike>$199.00</strike> $188.00它应显示188.00

<strike>$20.00</strike> $18.50它应显示18.50

<strike>$4.20</strike> $2.20它应显示2.20

<strike>$12345.00</strike> $12225.00它应显示12225.00

2 个答案:

答案 0 :(得分:1)

@Html.Raw(Regex.Replace(Model.Prices.SitePrice.Text, @"<strike>[\s\S]*</strike>", "").Trim().TrimStart('$'))

答案 1 :(得分:1)

要考虑的一个选项:

@Html.Raw(new string(Model.Prices.SitePrice.Text.Reverse().TakeWhile(z => z != '$').Reverse().ToArray()))

这将使SitePrice末尾的文本直到(但不包括)$。

Reverse表示将字符串反转。 TakeWhile为您提供文本,直到$Reverse再次将其反向。 new string将char数组转换回字符串。