skillup

技術ブログ

サーバー・ネットワーク プログラミング全般

正規表現その2

投稿日:

10/28に書いた正規表現に関しての追記です。

覚えておきたいメタ文字

よく出るメタ文字の復習です。

メタ文字 メタ文字の説明
[] いずれかの1文字 [abc]はaかbかcのどれか
[^~]  ~以外のどれか
 []内で使われると範囲。例[a-z]はaからzまで。そうでなければ普通の文字と一緒
. 任意の1文字
() 内部でマッチした文字のキャプチャ、グループ化
? 直前の文字やパターンが1回、もしくは0回(最短一致)
* 直前のパターンが0回以上連続
+ 直前のパターンが1回以上連続
{n,m} 直前の文字パターンがn回以上、m回以下
| or条件を作る
^ 行頭
$ 行末
\ メタ文字のエスケープ。その他\n,\w等を作る

例えばhtmlのselectタグのoptionのvalueを抜くことを考えてみましょう。

これは下記正規表現で抽出することができます。

留意点

  • +や*は汎用性が高すぎるので特に文字をキャッチしさせる場合は半角英数だけの場合は\wなどで代用するか?などで最短一致を考える
  • +や*はパフォーマンス的にも遅いのでできるだけ制約の多い文字にする。
  • 個人的にはスクレイピングをすると正規表現に強くなるかと思いますので、お勧めです。
  •  エスケープ文字を/するのを忘れないようにする。エスケープする必要がないのに\をしないように。
  •  タブ文字(\t,\nなど)に注意

言語によって違いは若干あるかもです

-サーバー・ネットワーク, プログラミング全般
-

執筆者:


comment

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

関連記事

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

webの仕組み その2 リクエストとレスポンス

クライアント(ブラウザ)はサーバーとの接続を確立した後、各種リクエストを送信します。サーバーはそれにこたえテキストや画像などのリソースをクライアントに転送します(これがレスポンスです。) Firefo …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

no image

コードの抽象化

リーダブルコードも終盤に少しずつ近づいてきました。 今まではどちらかというとコードの点や線の技術に注目してきましたが、これからは面的な要素に注目していきます。 リーダブルコードでは「無関係の下位問題を …

no image

vagrant share

実はvagrantを使って仮想環境を一時的ではありますが、webから見ることができます。 1 まずはhttps://atlas.hashicorp.com/account/newにてアカウント登録。そ …