タグ

regexpに関するTrapezoidのブックマーク (5)

  • 文字列から正規表現を生成するときのメモ - IT戦記

    base2 のコードを見ていたら便利そうだったのでメモ http://code.google.com/p/base2/ 文字列から正規表現を作るとき RegExp("^hoge$"); // hoge とマッチ RegExp("^\\\\$"); // \ とマッチ RegExp("^\\[hoge\\]$"); // [hoge] とマッチ という感じで、バックスラッシュをいっぱい書かなければいけないので 以下のような関数を用意してやって function _r(str) { return (str + '').replace(/([\/()[\]{}|*+-.,^$?\\])/g, "\\$1"); } こんな感じで match(RegExp('^' + _r(prefix) + 'unko'), 'unko'); めもめも

    文字列から正規表現を生成するときのメモ - IT戦記
  • Webプログラマーが知っておくべき5つの正規表現 - ケーズメモ

    顔に見える?最近「送水口」が気になるという話 「送水口」が気になる今日この頃 最近街中で気になる存在、それがこの「送水口」です。地上のフロアが7階以上あるビルなど、一定の条件を満たした建築物には設置が義務付けられているもので、火事が発生したフロアにただちに水を送るために使われるものです。ポンプ車…

    Webプログラマーが知っておくべき5つの正規表現 - ケーズメモ
  • JavaScriptのString#matchと正規表現 - os0x.blog

    どうもよくわかってなかったというか、誤解していた部分があったようなので、とりあえずFirebugで書いてみた。 var log = console.log; log("a/a".match("a")); // "a" log(RegExp.$1); // log("a/a".match("(a)/")); // "a/", "a" log(RegExp.$1); // a log("b/b".match(/(\w)\//)); // "b/" , "b" log(RegExp.$1); // b log("c/c".match("(\w)")); // null log(RegExp.$1); // b log("d/d".match("(\\w)")); // "d" ,"d" log(RegExp.$1); // d log("e/e/e/".match(new RegExp("(e)

    JavaScriptのString#matchと正規表現 - os0x.blog
  • 正規表現講習会(その1)を開催しました

    社内勉強会として、正規表現について喋ってみました。「最長一致」をテーマに、正規表現マッチのイメージが湧いていない人にもわかるような内容を目指したつもりですが、POSIXとPCREの最長一致の違いなど、ややマニアックな内容も含んでいます。 第29回PHP勉強会でも似た内容で発表させてもらいましたが、実はこの社内勉強会のプレゼンの一部を取り出して紹介したものでした。 今回のムービーはzoomeにアップロードしてみました。アップロードされている他のムービーと見比べると異色な内容のような気がしますが、ありがたく使わせて頂きます。 ムービー 発表資料 スライド(PDF) 補足1: 「最短一致は使わない」について 基的に最短一致は使うな、という結論にしてしまっているのですが、これは説明を端折っている面が大きいです。私の考えでは、正規表現初心者の頃は特にそうなのですが、「マッチングが最長一致であるため

  • Emacs で正規表現を使うなら re-builder を使おう - higepon blog

    Emacs で正規表現を使うならば re-builder を使うことをおすすめします。 例えば、正規表現を良く使うシチュエーションとして置換があります。 M-x replace-regexpで置換対象文字列を正規表現で指定し、何に置換して欲しいかを指定するわけです。 行頭に // を追加してソースをコメントアウトしたいのであれば M-x replace-regexp Replace regexp: ^ ← ^ を入力 Replace regexp ^ with: // ← // を入力のように置換をします。(この場合は、comment-region が最適解ですが) 例に挙げたような簡単な正規表現であれば、間違いようもなく問題ないのですが、ちょっと複雑な置換になると話は変わります。 以下のようなコードがあるとしましょう。 byte* buf = new byte[32]; unsigned

    Emacs で正規表現を使うなら re-builder を使おう - higepon blog
  • 1