我不是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
答案 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数组转换回字符串。