当我用西班牙语或其他成语搜索月份字符串时,我想应用正则表达式来查找英语月份。目前我有一系列可能的比赛:
$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"。
答案 0 :(得分:0)
因为月份的所有短名都在月份的实际名称内,所以你可以添加一个空格:
'en' => array('jan ', 'feb ', 'mar ', 'etc'),
'es' => array('/ene |enero /','/feb |febrero /','/mar |marzo / ','etc')