php:如何用掩码regexp交换字母

In word that begin with consonants cluster or consonant I need to put consonants (cluster) at the end of the word using regexp.

For example: bbber-> er-bbb, bert->ert-b, avokado->avokado

//if word begins with consonant letter
if (preg_match("/\b[b-df-hj-np-tv-xz]/i", $word)) {
            return preg_replace(??????);
        }

You can use preg_replace:

$repl = preg_replace('/^([b-df-hj-np-tv-xz]+)([a-z]+)$/i', '$2-$1', $input);

RegEx Demo

RegEx Breakup:

  • ^: Start
  • ([b-df-hj-np-tv-xz]+): Match and group starting block of consonants
  • ([a-z]+): Match and group rest of the letters
  • $: End

Replacement is $2-$1 that basically changes the order of letters in original string.