PHP-预匹配?

标签 php regex date preg-match

我不太擅长表达……我看了一些在线教程,但我还是不懂。基本上,如果字符串格式如下,我将尝试返回 TRUE:

4位+空格+2位转换成日期。

所以,字符串看起来像:2010 02,我正在尝试输出 February, 2010

我正在尝试使用 preg_match,但我一直在获取

{ is not a modifier...

编辑

根据前 2 个响应,我更改了它,但在第一个和第二个上遇到了相同的未知修饰符错误:

if (preg_match('/([0-9{4}]) ([0-9]{2})/iU', $path_part)) {
    $path_title = date("F, Y",strtotime(str_replace(" ", "-", $path_title)));
}

此外,刚刚在第一个响应中尝试了更深入的版本,虽然错误消失了,但它并没有改变输出:

$path_part = '2010 02';
if (preg_match('/^(\d{4}) (\d{2})$/', $path_part, $matches)) {
    $path_title = $mon[(int)$matches[2]] . " " . $matches[1]; // prints Feb 2010
}

最佳答案

如果字符串的格式如下:4 位数字 + 空格 + 2 位数字,我将尝试返回 TRUE

return preg_match(/^\d{4} \d{2}$/,$input);

要转换为日期,您可以尝试类似的操作:

$mon = array('','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_str = "2010 02";

if(preg_match('/^(\d{4}) (\d{2})$/',$date_str,$matches))
{
        print $mon[(int)$matches[2]] . " " . $matches[1]; // prints Feb 2010
}

关于PHP-预匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217261/

相关文章:

php - PHP 中的相对路径在服务器上不起作用

php - 如何在 Laravel 5.2 中设置至少需要填写两个字段

linux - 如何从时间戳而不是当前时间中减去 10 分钟

php - 如何在 Symfony 2.3 中呈现表单按钮?

php - php语法错误问题

regex - 为什么正则表达式可以有指数级的运行时间?

python - 用于重复 2 个或更多碱基的均聚物过滤器

javascript - 如何使用字符串文字生成正则表达式?

sql-server - 字符串转换为有效日期

linux - Bash - 用给定的日期计算