2017-10-29 7 views
3

子音クラスターまたは子音で始まる単語では、regexpを使用して単語の末尾に子音(クラスター)を入れる必要があります。例えばphp:マスクregexpと文字を入れ替える方法

bbber-> er-bbbbert->ert-bavokado->avokado

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

答えて

3

あなたはpreg_replaceを使用することができます。

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

RegEx Demo

正規表現の分裂:

  • ^
  • ([b-df-hj-np-tv-xz]+)を開始します。マッチと文字
  • $のグループ残り:マッチとグループは子音
  • ([a-z]+)のブロックを開始するエンド

交換は、基本的に$2-$1です元の文字列の文字の順序を変更します。

+0

この例で 'qu'を追加するには? 'question-> estion-qu' –

+1

この正規表現を使うことができます:'/^(qu | [b-df-hj-np-tv-xz] +)([a-z] +)$/' – anubhava

関連する問題