正则表达式PHP找到2个单词相同的位置

时间:2015-06-10 15:36:02

标签: php regex preg-replace

当我用西班牙语或其他成语搜索月份字符串时,我想应用正则表达式来查找英语月份。目前我有一系列可能的比赛:

$monthsIdioms = array(
                'en' => array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'),    
'es' => array(
            '/ene/',
            '/feb/',
            '/mar/',
            '/abr/',
            '/may/',
            '/jun/',
            '/jul/',
            '/ago/',
            '/sep/',
            '/oct/',
            '/nov/',
            '/dic/'
        ));

但我的日期变量可以采用以下格式:

$date = "24 ene 15:45";

或者这个:

$date = "24 enero 15:45";

所以我需要一个正则表达式来在我的日期和其他月份找到ene或enero:

'es' => array(
                    '/ene|enero/',
                    '/feb|febrero/',
                    '/mar|marzo/',
                    '/abr|abril/',
                    '/may|mayo/',
                    '/jun|junio/',
                    '/jul|julio/',
                    '/ago|agosto/',
                    '/set|septiembre/',
                    '/oct|octubre/',
                    '/nov|noviembre/',
                    '/dic|diciembre/'
                )

我称之为:

preg_replace($monthsIdioms['es'], $monthsIdioms['en'], $date);

但是正则表达式没有正常工作。我错了什么?

请注意' es'数组是正则表达式字符串。

所以为了澄清这一点,我希望如果我有这个日期:" 24 ene 15:45"或者:" 24 enero 15:45"转换为:" 24日15:45"与一年中任何其他月份相同:" 24之前15:45"或" 24 agosto 15:45"至" 24 aug 15:45"。

1 个答案:

答案 0 :(得分:0)

因为月份的所有短名都在月份的实际名称内,所以你可以添加一个空格:

'en' => array('jan ', 'feb ', 'mar ', 'etc'),
'es' => array('/ene |enero /','/feb |febrero /','/mar |marzo / ','etc')