正则表达式从匹配中删除模式

时间:2014-09-02 07:39:30

标签: regex date

试图找到答案,但没有成功。

所以,让我们说我有一个字符串

12/01/2014 22:13 1,600/1,800 *or*
12/01/2014 22:13 100/200 *or*
12/01/2014 22:13 1,600/1,800 A *or*
12/01/2014 22:13 1600/1800 A

我需要获得/ 1,800或/ 200或/ 1,800或/ 1800

/(\d{1,3},)*\d+.?(\d{1,8}|)

这给了我2场比赛:ex。 / 1,800和/ 01/2014

我找到了排除日期的模式:

(?!(0?[1-9]|1[012])([-/.])(0?[1-9]|[12][0-9]|3[01])([-/.])(19|20)\d\d)

但我不知道如何将这两者结合起来。

2 个答案:

答案 0 :(得分:2)

.*(\/\S+)

这个简单的正则表达式应该适合你。

See demo

答案 1 :(得分:1)

您可以尝试使用以下正则表达式仅匹配/1,800/200/1,800/1800

\/(?:\d,\d{3}|\d{3,4})\b(?=[^\d]*$)

DEMO

\/(?:\d,\d{3}|\d{3,4})\b(?! \d)

DEMO

(?! \d)这种否定的前瞻声明,数字后面的字符不能是<space>和数字。所以这个/01/2014匹配应该失败,因为它后跟一个空格和一个数字。