繁体   English   中英

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

[英]Regex PHP find 2 words same position

我想用正则表达式在西班牙语或其他成语中搜索月份字符串时找到英语月份。 目前我有一系列可能的匹配项:

$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”,将其转换为:“ 1月24日15:45”,与其他月份相同年度:“ 24前15:45”或“ 24前15:45”至“ 8月24日15:45”。

好吧,由于该月的所有短名称都在该月的实际名称中,因此您只需添加一个空格即可:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM