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

便利すぎる道具の弊害

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・ IDEについて一応説明をしてお …

no image

Webの高速化に関して

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

no image

abstract,interface,traitなどについて

昔はようわからなかったabstract(継承全般)、interface、traitの使い分けなどについて。 今の現場でいろいろと考えることがあり、自分なりにいろんな方の知見を共有できたので、メモしてお …

no image

テストのダミーデータ作成

データベースに大量のデータを作りたいときにいつもあああやhoge,aaaですとデータという感じがしないですし、抽出や集計ができません。 なるべく自然に近いデータが欲しいのですが、簡単に作れる方法があり …

no image

小〜中規模程度のWEBアプリ作成で気をつけるべきこと

初見の処理系(ライブラリ操作)などは休日などで最小パターンを確認しておくこと。実務で何時間も悩むと非常にストレスがたまる テーブル設計命。あとで終えるようにトレースができるような値を入れておくこと。 …

アーカイブ