寻找数字的 replace() 通配符



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

我有一个令牌@Html.Raw(Model.Prices.SitePrice.Text)显示产品价格($ 9.99(

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

这一切都工作正常,问题是当我对该产品应用特殊/促销时,它会更改令牌以显示:

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

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

本文编写 .replace(( 的最佳方式是什么?(必须内联谷歌模式数据(

我试过:

@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", "").Replace("<strike>[rn]+</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

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

一个需要考虑的选项:

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

这将采用SitePrice末尾的文本,直到(不包括($。

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

最新更新