正規表現 メタキャラクタ 検索・置換 前編

バイオインフォ道場、くまぞうです。

sed や awk、grep、その他のプログラム処理で文字列を扱うときに、よく用いられる「正規表現」についてまとめます。前編です。(後編を読む

スポンサーリンク



正規表現とは

正規表現とは、文字列集合を特殊文字(メタキャラクタ)で表現する方法です。メタキャラクタには、$(ダラー)や^(サーカムフレックス)、[](ブラケット)などが良く使われます。例えば、[0-9]は0〜9の数字のどれか、[Ww]ordはWordもしくはwordです。使うプログラムによって、正規表現の詳細は異なる場合がります。共通して使える基本的なものを中心に覚えると良いと思います。

基本的な正規表現メタキャラクタ1

任意の1文字にマッチ

  • 書式
    .(ピリオド)

  • wo.d(word, wood など)
  • 使い方
          $ cat bbb.txt 
          word
          wood
          sky
    
          $ grep -e "wo.d" bbb.txt 
          word
          wood

直前の1文字を任意回数繰り返し(0回を含む)にマッチ

  • 書式
    *(アスタリスク)

  • w*(w, www, wwwwwwwwww, worldなど)
  • 使い方
          $ cat bbb.txt 
          word
          wood
          sky
    
          $ grep -e "wo.d" bbb.txt 
          word
          wood
    
          $ grep -e "sk" bbb.txt 
          sky

どれか1個にマッチ

ブラケットに囲まれた文字のうち、どれか1個にマッチする。1文字目に、サーカムフレックス(^)を置くと意味が反対になる。ハイフン(-)を使うと文字の範囲を意味する。

  • 書式
    […](ブラケットで文字を囲む)

  • [123](1か2か3)、[1-3](1〜3)、[^123](1-3以外の1つの数字)
  • 使い方
          $ echo "Word" | sed 's/[^Ww]/!/g'
          W!!!

後編を読む

スポンサーリンク





ピックアップ記事

  1. R plot 重ねる方法3パターン サンプルでわかるRの使い方

    Rでグラフ (plot) を重ねる方法は、「単純な追加」「図に重ねて描画」「濃淡で重なり表現」の3…
  2. awk split サンプルでわかる列の分割とセパレータ(文字・正規表現)の指定方法

    awkのsplit関数は、セパレータを指定して文字列を分割することができます。セパレータには文字や…
  3. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…

人気記事

  1. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  2. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  3. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…

おすすめ記事

  1. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  2. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  3. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…