2016-02-27 36 views
0

我有串这样的:PHP使preg_split的语言

DE:德语恩:英语-ES:西班牙语-FR:法语-RU:Pусский-JP:日本语

如何我能得到的结果与使preg_split这样的:

德恩ES FR茹JP

我曾尝试这样的:

$result = preg_split("/(:(.*)\-)/", "de:Deutsch-en:English-es:Español-fr:Français-ru:Pусский-jp:日本語"); 
print_r($result); 

结果也只是第一配有一个和最后一个匹配:

阵列([0] => DE [1] => JP:日本语)

回答

2

正则表达式

:.*?(-|$) 

应该作品;尝试类似:

"/:.*?(-|$)/" 

然后:

preg_split("/:.+?(-|$)/", "de:Deutsch-en:English-es:Español-fr:Français-ru:Pусский-jp:日本語",-1,PREG_SPLIT_NO_EMPTY); 
+0

阵列([0] => DE [1] =>烯[2] => ES [3] => FR [4] => ru [5] => jp [6] =>)最后的结果[6]是空的,也许我们可以删除它? – webmaster

+0

使用'PREG_SPLIT_NO_EMPTY'标志。 –

+0

很多谢谢,现在工作正常 – webmaster