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

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

sslの設定に関して

実務でサーバーにSSLの設定をすることがあったので書いておきます。 Contents1 SSLとは?2 設定方法全般に関して2.1 秘密鍵2.2 サーバー証明書と中間証明書の合体 SSLとは? 通常の …

no image

nginxのlocationディレクティブ内のリダイレクト処理について

nginxのlocationディレクリブ内のリダイレクト処理に関して。 結構長い間携わっていますが、適当に理解していた部分が多かったので再度復習です。 特にドメインのサブディレクトリでサービスを運用し …

no image

変数の役割について

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

no image

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

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