skillup

技術ブログ

プログラミング全般

正規表現に関して

投稿日:2016年10月28日 更新日:

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

プログラミングを習得するときに必要な2つの大事なこと

元々私は塾で仕事をしていましたが、いろいろ紆余曲折ありましていまではWEBエンジニアとして仕事をしております。 エンジニアとしてのキャリアは3年ぐらいなので正直あまりないのですが、開発者と平行してプロ …

no image

読みやすいコードについて

コードリーディングにおいて聖典となっているリーダブルコードについて読んでいこうかと。 ただ読んでいくだけではつまらないので、自分なりの考え方も書いていきます。 Contents1 優れたコードの定義1 …

no image

JavaScriptライブラリ sugar

去年、JavaScriptの仕事をがりがりやった時にお世話になったライブラリsugar。 JavaScriptのライブラリというとunderscore.jsが有名ですが、こいつも結構使えるライブラリで …

no image

オブジェクト指向 ドメインモデル

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にドメインモデルの考え方について。 Contents1 ドメインモデルの考え方1.1 要点1.2 感想 ドメインモデルの考え …

no image

オブジェクト指向 データベース層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にデータベース層の考え方について。 Contents1 データべース層1.1 要点1.1.1 典型的なダメテーブル設計1.1 …