タグ

正規表現に関するmapserver2007のブックマーク (8)

  • 私がどのようにしてAtomの奇妙なバグを修正したか : 正規表現が暴走を起こすとき | POSTD

    Atom は、今注目の最新テキストエディタです。私は、このエディタをソフトウェア開発に使用しているのですが、オープンソースになっているので、少しでも貢献できればとAtomが抱えるIssuesについて検証してみることにしました。私は、 ある奇妙なバグ を見つけました。それは、Atomのユーザ speter がテキストを1行書き、行末で Enter を押した時に起こりました。新たな行が書けるようになるまで、Atomは30分も計算していたのです。私は、そんな単純かつよくあるオペレーションもろくにできないことに大きな衝撃を受け、早速その原因を探ることにしました。 検索 これが、問題のテキストです。 vVar.Type().Name() == "" && vVar.Kind() == reflect.Ptr && vVar.Type().Elem().Name() == "" && vVar.Typ

    私がどのようにしてAtomの奇妙なバグを修正したか : 正規表現が暴走を起こすとき | POSTD
  • 汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ

    あらすじ ソフトウェアの中の依存関係について 正規表現で抽出できることとその限界 コードの依存関係を抽出するツール rexdep を作りました ソフトウェアの構造を概観するには あなたは、大きなソフトウェアを目にした時、何をしますか? ファイルが何十、何百もある時、どこから読みますか? ソフトウェアが巨大になると、そのコードの構造を把握するのは難しくなります。 特にプロジェクトに入りたての人にとって巨大なコードベースを一目で理解することは難しく、細かなタスクをこなしていく中で徐々に「どこに何が書いてあるか」を理解していくしかありません。 ソフトウェアによってはモデルとコントローラ、データベースとビューと言った具合にコードが分かれており、これくらいの分類はディレクトリ名を見れば理解できるかもしれません。 しかしそのようなざっくりとしたコードの分類が分かったところで、ソフトウェアの構造を理解し

    汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ
  • Email Address Regular Expression That 99.99% Works.

    Just copy and paste the email regex below for the language of your choice. Feeling hardcore (or crazy, you decide)? Read the official RFC 5322, or you can check out this Email Validation Summary. Note there is no perfect email regex, hence the 99.99%. General Email Regex (RFC 5322 Official Standard) (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • 常にマッチする正規表現を使えばJavaScriptでも固定位置でのパターンマッチができる - rikubaのブログ

    パターンの末尾に「|」を付け加えると、その正規表現は常にマッチする。 /aaa/.exec("xyz"); // => null /aaa|/.exec("xyz"); // => [""] これを使えば、ある位置でのみパターンマッチを行うということ(Perl の正規表現で「\G」のメタ文字を使うようなこと)が JavaScript でもできる(Firefox に限っては「y」フラグを使えば簡単にできるけど、独自拡張今のところ他のブラウザでは使えない)。 // RegExp::exec の戻り値の配列には index プロパティがあり、 // マッチに成功した位置を表す var text = "xxxaaxxxaaa", regexp, result; // 4〜6文字目が aaa かどうかだけ確かめたいとする // 通常の正規表現 regexp = /aaa/g; regexp.last

    常にマッチする正規表現を使えばJavaScriptでも固定位置でのパターンマッチができる - rikubaのブログ
  • 正規表現じぇねれーた

    正規表現を自動生成します。 改行区切りで単語を入れると、すべての単語にマッチする正規表現を自動的に作成します。 who what where why when ここに改行区切りで単語を入れよう。 サンプルデータをもっと見る。 解説 perlにはRegexp::Assembleという正規表現を作成してくれるモジュールがあります。 これを PHPに移植して、 Regexp Assemble For PHPなるモジュールを作って見ました。 移植の経緯などは 11/12の第57回PHP勉強会@東京 とかで話したいと思います。 いろいろ大変でした。。。 動作環境は、PHP 5.3以上( PHP5.4 推奨 早いよ!! )です。 もし、間違った正規表現が表示されるようでしたら、ご連絡ください。

    mapserver2007
    mapserver2007 2011/11/06
    こりゃすごい。
  • 電話番号、郵便番号にマッチする真の正規表現 : にぽたん研究所

    Shibuya.pm #16 「夏の正規表現祭り」で、正規表現のお話をさせていただきました。 まぁ、「電話番号にマッチする正規表現」とか「郵便番号にマッチする正規表現」とかよく書かれてるけど、「どれもこれも手緩いよね」って話。 あ、だいぶはしょったかな。 とりあえずスライドに書いたので、発表をご覧になってない方はスライドからご覧ください。 ふと見返すと、このブログで電話番号の正規表現を公表するのは 3 度目ですが、あれからだいぶ経ってますね。 今ではもっと厳密な正規表現を作っています。 そして、Number::Phone::JP に続き、Number::ZipCode::JP という酔狂なモジュールが公開された記念で、郵便番号にマッチする正規表現を今回初めて公開しますが、そもそもここまで厳密な正規表現が公開されること自体、邦初公開ってヤツでしょう。 Shibuya.pm でも言いましたが

    電話番号、郵便番号にマッチする真の正規表現 : にぽたん研究所
  • Perlの正規表現をマスターしよう - Perl入門ゼミ

    Perl › 正規表現 Perlの正規表現の解説です。この記事を読めば、日常で利用する正規表現のすべてを短時間でマスターすることができます。正規表現を使えば、文字列の集合を表現することができ、正規表現にマッチする文字列を検索したり、置換したりすることができます。 正規表現を使って文字列の集合を表現できます。たとえば「a」「aa」「aaa」という三つの文字列を正規表現で表現してみましょう。連続する文字の個数を表現する正規表現「{}」を使って次のように書くことができます。 a{1,3} 「a」「aa」「aaa」という文字列の集合をひとつの正規表現「a{1,3}」で表しています。{}は量指定子と呼ばれるもので、連続した文字を表現することができます。 a aa -> a{1,3} aaa 正規表現の例をもう一つみてみましょう。「p1」「q1」「r1」という文字列の集合をひとつの正規表現「[pqr]

    Perlの正規表現をマスターしよう - Perl入門ゼミ
  • 1