【发布时间】:2010-02-24 23:09:17
【问题描述】:
解释我的问题的最好方法就是向你展示。
输入字符串:
/04-11-2010/12:45/
获取日期和时间部分的正则表达式:
preg_match('@/(\d\d)-(\d\d)-(\d\d\d\d)/(\d\d):(\d\d)/@', $input, $matches);
PHP 匹配数组:
Array
(
[0] => /01-11-2010/12:45/
[1] => 01
[2] => 11
[3] => 2010
[4] => 12
[5] => 45
)
现在,上面的正则表达式可以完美地获取表示输入字符串中日期和时间的各个组成部分。
问题是时间部分需要是可选的,而不需要降低整个正则表达式。
问题输入字符串:
/04-11-2010//
PHP 匹配数组
Array
(
)
matches 数组需要返回的内容基本上是:
Array
(
[0] => /01-11-2010/12:45/
[1] => 01
[2] => 11
[3] => 2010
[4] =>
[5] =>
)
注意数组元素 4 和 5 仍然需要存在但返回空。
【问题讨论】:
-
我来晚了!来吧,你不需要正则表达式;)
-
@Rowlf 实际上使用日期只是一个例子。我实际上有一个更大的输入字符串,需要一个正则表达式来提取所有数据。我只需要知道如何捕获不匹配的组。
-
@Camsoft 很公平:)