试图找到答案,但没有成功。
所以,假设我有一个字符串
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 个匹配项:例如。/1,800 和/01/2014
我找到了排除日期的模式:
(?!(0?[1-9]|1[012])([-/.])(0?[1-9]|[12][0-9]|3[01])([-/.])(19|20)\d\d)
但我不知道如何将这两者结合起来。
最佳答案
您可以尝试使用以下正则表达式仅匹配 /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
匹配应该失败,因为它后面跟着一个空格和一个数字。关于正则表达式从匹配中删除模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25618236/