正则表达式只捕获最后的数字

时间:2014-05-14 08:13:42

标签: regex

我有一些示例文本如下。

this is 1989 representing text 245
this is sample text 235
this is 234 sample text with comma seperator 345,756

这里我需要一个regex来获取最后的数字,我已经尝试了以下

[(0-9)+]

但这是捕获所有数字,但只需要捕获文本结束后的数字。

捕获的值应为

245
235
345,756

请让我知道我该怎么做。

由于

4 个答案:

答案 0 :(得分:4)

你可以这样做:

/[\d,]+$/mg

DEMO

要允许更多字符,只需将它们添加到字符类:

/[\d,.-_]+$/mg

或者如果您愿意,只需允许非重音字母外的所有内容:

/[^a-zA-Z]+$/mg

答案 1 :(得分:1)

您也可以尝试这个易于理解的内容:
^.*[0-9]+$

^.*开始随心所欲的任何长度 [0-9]+$以至少一个数字(或更多)结束
如果您只想恢复数字而不是与您的请求相对应的行:
[0-9]+$

在这里我们可以添加恢复逗号的复杂性:
[0-9]+(,[0-9]+)?$

答案 2 :(得分:1)

您可以使用

\d+(?=[-, \d]*$)

Regular expression visualization

Demo

答案 3 :(得分:1)

这不是更简单吗?

允许:仅限数字

\d+$

允许:数字,逗号,破折号

[\d,-]+$

允许:数字,破折号

[\d-]+$