正規表現で文章内のひらがな、カタカナ、漢字、英字、数字の抽出方法

正規表現を使って文章内に存在する「ひらがな」、「カタカナ」、「漢字」、「英字」、「数字」を抽出する方法について解説します。

文章内に存在するひらがなのみを抽出しています。


$str="ひらがなカタカナ漢字a1ひらがなカタカナ漢字b2";

preg_match_all("/[ぁ-ゞ]+/u", $str, $hiragana);
  
  foreach ($hiragana[0] as $hiragana_key => $hiragana_value){
    echo $hiragana_value."<br />\n";
  }
  /*
  ひらがな
  ひらがな
  */

文章内に存在するカタカナのみを抽出しています。


$str="ひらがなカタカナ漢字a1ひらがなカタカナ漢字b2";

preg_match_all('/[ァ-ヶーア-ン゙゚ァ-ォャ-ョー]+/u', $str, $katakana);
  
  foreach ($katakana[0] as $katakana_key => $katakana_value){
    echo $katakana_value."<br />\n";
  }
  /*
  カタカナ
  カタカナ
  */

文章内に存在する漢字のみを抽出しています。


$str="ひらがなカタカナ漢字a1ひらがなカタカナ漢字b2";

preg_match_all("/\p{Han}+/u", $str, $kanji);
  
  foreach ($kanji[0] as $kanji_key => $kanji_value){
    echo $kanji_value."<br />\n";
  }
  /*
  漢字
  漢字
  */

文章内に存在する英字のみを抽出しています。


$str="ひらがなカタカナ漢字a1ひらがなカタカナ漢字b2";

preg_match_all("/[a-zA-Z]+/", $str, $eiji);
  
  foreach ($eiji[0] as $eiji_key => $eiji_value){
    echo $eiji_value."<br />\n";
  }
  /*
  a
  b
  */

文章内に存在する数字のみを抽出しています。


$str="ひらがなカタカナ漢字a1ひらがなカタカナ漢字b2";

preg_match_all("/[0-9]+/", $str, $suuji);
  
  foreach ($suuji[0] as $suuji_key => $suuji_value){
    echo $suuji_value."<br />\n";
  }
  /*
  1
  2
  */

preg_match_allで対象文字列が複数存在した場合、個別変数代入して出力させています。