我从字符串中提取价格,下面有不同的格式示例。
MRP 12,000
Rs. 12,000/-
Rs.12000.99
12000 after 10% discount
如何在C#中使用REGEX替换来替换除价格之外的所有内容。我的输出中只需要 12000 ,意味着数字只允许使用逗号。
答案 0 :(得分:0)
<强>正则表达式强>
(\d+.\d+)
测试字符串
MRP 12,000
Rs. 12,000/-
Rs.12000.99
12000 after 10% discount
<强>结果强>
12,000
12,000
12000.99
12000
<强> online demo 强>
修改强>
这是另一个正则表达式,它看起来有点复杂,但它解决了评论中提到的大多数问题。如果需要,你可以使用相同的。
(?<=[\s.])(\d+(?(?=[\.,]\d).\d+|(?=\s|$)))
<强> online demo 强>
答案 1 :(得分:0)
对于这个特定的用例,我会这样做。但是您需要更多数据才能确保不会捕获其他不需要的数字。例如,这也可能会捕获phonenumber,所以你必须调整消极的lookbehind和lookahead来解释它。
(?<!\d\.)\b[\d,]+\b(?!%)