替换除价格以外的所

时间:2014-10-14 07:45:56

标签: c# asp.net regex

我从字符串中提取价格,下面有不同的格式示例。

MRP 12,000
Rs. 12,000/-
Rs.12000.99
12000 after 10% discount

如何在C#中使用REGEX替换来替换除价格之外的所有内容。我的输出中只需要 12000 ,意味着数字只允许使用逗号。

2 个答案:

答案 0 :(得分:0)

<强>正则表达式

(\d+.\d+)

测试字符串

MRP 12,000
Rs. 12,000/-
Rs.12000.99
12000 after 10% discount

<强>结果

  • 比赛1
    1. [4-10] 12,000
  • 比赛2
    1. [15-21] 12,000
  • 比赛3
    1. [27-35] 12000.99
  • 比赛4
    1. [36-41] 12000

<强> online demo


修改

这是另一个正则表达式,它看起来有点复杂,但它解决了评论中提到的大多数问题。如果需要,你可以使用相同的。

(?<=[\s.])(\d+(?(?=[\.,]\d).\d+|(?=\s|$)))

<强> online demo

答案 1 :(得分:0)

对于这个特定的用例,我会这样做。但是您需要更多数据才能确保不会捕获其他不需要的数字。例如,这也可能会捕获phonenumber,所以你必须调整消极的lookbehind和lookahead来解释它。

(?<!\d\.)\b[\d,]+\b(?!%)

Regular expression visualization

Debuggex Demo