[英]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.