skillup

技術ブログ

プログラミング全般

正規表現に関して

投稿日:

SQLネタをいろいろと書いておりますが、ちょっとワンポイント的なネタで正規表現について書きたいと思います。

平均的なものは知っているつもりでしたが、シェルの正規表現について知らなかったのでちょっとメモリます。

通常の正規表現とシェルの正規表現の違いに関して

シェル 通常の正規表現 意味
? . 任意の一文字
* .* 0文字以上の任意の一文字
[abc] [abc] abcのいずれか

grep中の正規表現に関して

例えばシェルのコマンドで

と入力すると、hoge.txtだけではなく、hogeetxtというファイルまで引っかかってしまいます。

これは.(ドット)が任意の1文字を表すからです。

もし完全にhoge.txtだけを取り出したい場合には

のようにエスケープ文字を入れる必要があります。

また

と検索すると当然hoge2 hogehogeも引っかかってしまいますのでこの場合もhogeにピッタリマッチするものを取得する場合は

と入力します。

その他

と入力すればhoge.txtとhuge.txtが合致します。

他にもhoge.txtとfoo.txtを取得したい場合は下記のように書きます。

または

でもよいです。

シェルのgrep検索には-Eオプションをつけることど拡張正規表現を使うことができます。

通常でも正規表現を使えるので、大きい違いはありませんが、

  • 通常型は(){}を使用する場合に\を入れなくてはいけない。拡張型は入れなくてよい
  • 拡張型は+?|などを使うことができる

など微妙な差異があります。

使えるツール

対象となる正規表現をハイライトしてくれます。

スクレイピングとかやってるときに知りたかった・・

http://rubular.com/

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

データ構造の基礎知識 前編 メモリとポインタ、配列と連結リスト

WEB+DB(vol91)で使えそうな連載記事がありますのでブログにメモリます。 テーマはデータ構造です。 Contents1 データ構造とは?2 計算量3 プログラムとメモリ4 配列について4.1 …

no image

制御フローについて

リーダブルコード 7章。制御フロー(if文などの条件分岐)について ここらへんは個人個人癖がついているとおもいますが、確かに読みやすい、読みにくいというのはあるのでなるべく汎用性のある規則を身につけた …

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

no image

コードの分割

今回はリーダブルコードの8章。コードの分割について。 ポイントとしては1行に情報を詰め込みすぎているような場合は分割して、意味がわかりやすい区切りにまとめよう、といったことでしょうか。つまりは「困難は …

no image

オブジェクト指向について その2

前回のエントリーのように、データとロジックを一体で考えるのは、処理状の有効性のみならず、よりユーザー側に近い処理をかくということにもつながります。 日付の問題に関してもintやshortよりはLoca …