Search code examples
phpregexpreg-split

php preg_split for languages


I have string like this :

de:Deutsch-en:English-es:Español-fr:Français-ru:Pусский-jp:日本語

How can I get results with preg_split like this :

de en es fr ru jp

I did try this:

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

result did come with just first and last match: 

Array ( [0] => de [1] => jp:日本語 )


Solution

  • regex

    :.*?(-|$)
    

    should works; try something like:

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

    then:

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