如何匹配指定单词之前的任何数字,无论逗号和小数字符如何?

时间:2016-08-22 16:25:10

标签: regex regex-lookarounds

如何从以下示例源中提取所有数字(包括逗号和小数字符)。在这个例子中,我希望“2,078”,“1.07”,“1.1”和“1”匹配。

  

4张床3张全套,1张半浴室2,078平方英尺1.07小工具1.1小工具1小工具1,000小工具

这是我到目前为止所做的:

(\d{1,3}(.?\d{2})?)(?=\swidget)

..以及regexr中结果的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

这就是你想要的:

\D(\d{1,3}(?:,\d{3})*(?:\.\d{1,2})?)(?=\swidget)

<强>解释

\D                  : a non digit
(                   : start group 1
    \d{1,3}         : 1 to 3 digits
    (?:,\d{3})*     : 0 or more comma and 3 digits
    (?:\.\d{1,2})?  : 0 or 1 dot and 1 or 2 digit
)                   : end group 1
(?=\swidget)        : followed by space and widget

See in action