繁体   English   中英

C#查找并替换长字符串中的价格

[英]C# Find and replace a price in a long string

我有一个用html表示网页的长字符串,我必须更改产品详细信息的价格,要替换的字符串是这样的: 10.20 €100.22 €1.50 €等。价格可能有所不同,因此替换必须工作任何数量。 我如何找到并替换这个价格? 我发现的唯一代码是这样的:

Regex.Replace(input, "[0-9].[0-9][0-9]", "");

但是它不是基于€符号的,因此可以在字符串中找到其他相似的数字并将其替换,尤其是如果有更多数字的数字不能替换所有数字的话,谢谢

@Kenny的解决方案:

var output = Regex.Replace(input, "[0-9]*.[0-9]* €", "");

谢谢

如果您对使用REGEX不满意,您所要做的就是向现有regex中添加积极的前瞻性。 它看起来像这样:

Regex.Replace(input, "[0-9]*.[0-9][0-9](?=\s€)", "");

如您所见, (?=\\s€)检查以确保存在欧元符号。 要对正则表达式进行更多试验,可以使用以下网站: regexr.com

上面的答案还取决于HTML欧元字符的编码方式。 您应该检查我们是否匹配正确的一个!

您可以使用

var output = Regex.Replace(input, @"[0-9]+(?:\.[0-9]+)?\s*€", "");

细节

  • [0-9]+ -1+个数字
  • (?:\\.[0-9]+)? -可选的子字符串匹配
    • \\. -一个点(必须转义以匹配文字点)
    • [0-9]+ -1+个数字
  • \\s* -0+空格
  • -欧元符号。

请参阅.NET regex演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM