skillup

技術ブログ

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

正規表現その2

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

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

nginx基本

データベースについて勉強していましたが、実務でnginxを触る機会があったので、これを機に勉強。 Contents1 参考文献2 nginx基礎3 コアモジュール4 httpモジュール5 設定ファイル …

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …

no image

supervisorによるデーモン化

えー実務で任意のプログラムをデーモン化させて処理をするという実装があったのでメモ。 Contents1 デーモンとは?2 Supervisor2.1 インストール2.2 実行プログラム2.3 サービス …

no image

気をつけたいトリガー系の処理など

実務でひやっとすることがあり、自分への戒めも込めてメモします。 Contents1 MySQLのcurrent_timestamp on update current_timestamp2 Larav …

no image

crontab 確認方法

crontabが動かないときに確認すること。 Contents1 cron自体が動いているか(下記コマンドでログを確認)2 実行権限が正しいか3 プログラム内部のファイルパスが絶対パスになっているか4 …

アーカイブ