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

テストプロセスに関して

日々是テスト。 プログラマになってから数年がたちますが難点はずっと同じでテストですね(汗) 以前にかいたエントリーなどは下記参照。 参考 データベースによるテストデータ作成 Excelによるテストデー …

no image

コーディングルール 前半まとめ

リーダブルコードを3分の2ぐらいよんだので現時点でのまとめを。 Contents1 いいコードの定義2 具体的な手法2.1 変数の名称2.2 コード自体の見た目2.3 コメント2.4 制御フロー2.5 …

no image

変数の役割について

前回のエントリーの主眼は変数を置くことで、適切な情報量に分割し、コードを読みやすくしよう、ということでした。 今回はそれとは少し逆の観点でして、不要な変数を削除して、コードを読みやすくしよう、というこ …

no image

フレームワーク作成時の注意ポイント

以前も多分書いていますが、フレームワーク作成時のポイントなどを列挙。 次元が違うものも多々含まれているかも。 ルーティング機能 基本設定情報の読み込み キャッシュ機能 データベース Form情報の管理 …

no image

Webの高速化に関して

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