我在preg_match中使用了这种字符串格式:
[Day][MonthAbbr] [Date] [Hour]:[Minutes][AM/PM]
example:
ThuDec 27 2:00am
拥有这个$ pattern和某种代码:
$pattern = "/([A-Z]{2}\w+)([A-Z]{2}\w+)\s+(\w+)\s+(\d+):(\d+)(..)/ims";
$match = array();
if (preg_match($pattern, rtrim($date), $match)) {
echo '<pre>';
print_r($match);
echo '</pre>';
} else {
echo 'Could not parse date.';
}
我能够从字符串中提取月,日,时间......等。
但我想知道为什么我想出了“无法解析约会”的问题。即使传递的价值仍然相同..
我比较了值和有错误的值:
ThuDec 27 2:00am
ThuDec 27 4:30am (gives the error)
以下屏幕截图进行比较:
我在preg_match中使用的模式有问题吗?
答案 0 :(得分:1)
<?php
$a = "ThuDec 27 4:30am";
$pattern = "/([a-z]{3})([a-z]{3})\s+(\d+)\s+(\d+):(\d+)([a-z]{2})/i";
$match = array();
if (preg_match($pattern, $a, $match)) {
echo '<pre>';
print_r($match);
echo '</pre>';
} else {
echo 'Could not parse date.';
}
?>
此代码对我来说效果很好。