メインコンテンツに移動
ホーム

古松

メインナビゲーション

  • ホーム
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • 正規表現で特定な文字出現回数を限定して検索方法

正規表現で特定な文字出現回数を限定して検索方法

やりたいこと:正規表現で特定な文字、出現回数限定されている行を検索

  • 例えば:空白文字:' '二つが入っている行(a little terror!)を割り出しタイです
    • Your son's a little terror! Can you control him?
    • a little terror!
    • little terror!

正規表現の否定(^)を利用して特定な文字を含めない単語を割り出し

  • 特定な文字を含めない単語を割り出して、そして特定な文字を真中に置き、このようなパターン回数を限定すればよいです
    • 正規表現の否定:[^ ] ← 空白を含めいない任意な文字
    • [^ ]+?  ← 空白を含めない単語(複数の文字)
    • [^ ]+? [^ ]+? ← 空白文字一つのみを含めている
    • ^[^ ]+? [^ ]+$  ← 空白文字一つのみを含めている行
  • 今回の例では二つの空白文字のみを含めるので、正規表現は以下のようです
    • ^[^ ]+? [^ ]+? [^ ]+$
      正規表現で特定な文字の出現回数限定される行の検索

 

PHPで特定な配列キーを正規表現で取得します

やりたいこと:配列にある特定なキーを割り出して値を取得します

  • 以下の配列を例とします
    $a = array(
        "key_0"   => "val 0",
        "key_1"   => "val one",
        "key_2"   => "val two",
        "key_3"   => "val three",
        "key_4"   => "val four",
        "key_5"   => "val five",
        "key_6"   => "val six"
    );
  • "kei_3"から"key_5"までの値を取得したいです

簡単な方法:ループ(例:foreach文)で配列キーに合うものをすべて取得します

  • シンプルな方法ではループ(例:foreach)で"kei_3"、"kei_4"、"kei_5"に合う値を取得します
    $a = array(
        "key_0"   => "val 0",
        "key_1"   => "val one",
        "key_2"   => "val two",
        "key_3"   => "val three",
        "key_4"   => "val four",
        "key_5"   => "val five",
        "key_6"   => "val six"
    );
    
    $out_arr = array();
    foreach($a as $k =>$var ) {
      if( $k == "key_3" || $k  == "key_4" || $k == "key_5" ) {
      $out_arr[$k] = $var ;
    }
    
  • もし、特定なキーが多い、また入力配列が多きい場合、この方法では不効率になります

正規表現で特定なキーをマッチングして、値を取得します

  • PHPの関数: array_filterを利用します
    $a = array(
        "key_0"   => "val 0",
        "key_1"   => "val one",
        "key_2"   => "val two",
        "key_3"   => "val three",
        "key_4"   => "val four",
        "key_5"   => "val five",
        "key_6"   => "val six"
    );
    
    $array_keys = array_keys($a);
    $matched_keys = array_filter(
        $array_keys,
        function($k){ return preg_match( "/key_[2-4]/u" , $k) ;}
                );
    
    foreach($matched_keys as $key){
        echo $a[$key]."\n" ;
    }
    

    array_filter関数と正規表現で特定な配列キーを取得します

  • array_filter関数の2番目の引数がコールバック関数なので、このコールバック関数に正規表現で特定なキーのマッチングを行っています


検索フォーム

カテゴリ別

  • laravel
  • drupal
  • javascript
  • windows
  • html
  • mysql
  • php
  • apache
  • css
  • SEO
  • video
  • wordpress
  • linux
  • python
  • Electron
  • Visual Studio Code

google ads