3

我有看起来像这样的日期字符串:

20120817110329

如您所见,其格式为:YYYYMMDDHHMMSS

我将如何选择(使用 RegEx)介于 7/15 和 8/20 之间的日期?或者 8/1 到 8/15 怎么样?

如果我想选择一个不涉及多个地方的范围,我有这个工作,但它非常有限:

^2012081[0-7] //selects 8/10 to 8/17

更新

永远不要忘记显而易见的事情(如下面的 Wiseguy 所指出的),您可以简单地查找 201207150000 和 201208209999 之间的范围。

4

2 回答 2

3

由于您只是查询包含这些值的数据库字段,因此您可以简单地检查 和 之间的201207150000201208209999


如果您仍然想要正则表达式,它并不漂亮,但是这样做:

^20120(7(1[5-9]|2\d|3[01])|8([0-1]\d|20))\d{4}$

reFiddle 示例

您基本上必须手动考虑每个可能的范围。

^20120
(
7
  (
    1[5-9]
   |2\d
   |3[01]
  )
 |
8
  (
    [0-1]\d
   |20
  )
)
\d{4}$
于 2012-08-19T01:28:00.450 回答
0

我认为这应该有效:

^2012(07(1[5-9]|[2-3][0-9])|08([0-1][0-9]|20))

尽管其他答案几乎相同...您可以查看以获取更多信息。

于 2012-08-19T01:37:05.407 回答