タグ

regexpとperlに関するkoyhogeのブックマーク (4)

  • Perlの正規表現のバグ? (後編) - moriyoshiの日記

    追記: ケース4についての記述がなかったので言及。 前回の調査で、[[:print:]] と \p{IsPrint} は実は等価でないということが分かったわけだけど、これだけではまだ再現できなかった理由、つまり、 use encoding 'utf-8'; $_ = "\t"; # 1. マッチしない printf("%d\n", /[[:print:]]/); # 2. マッチする printf("%d\n", /^[[:print:]]/); # 3. マッチする printf("%d\n", /[[:print:]]$/); # 4. マッチする printf("%d\n", /^[[:print:]]$/); # 5. マッチしない printf("%d\n", /[[:print:]]+/); # 6. マッチする printf("%d\n", /^[[:print:]]+/);

    Perlの正規表現のバグ? (後編) - moriyoshiの日記
  • Perlの正規表現のバグ? (前編) - moriyoshiの日記

    「鬼車の[[:print:]]はPOSIX流じゃないらしい」でid:ockeghemさんやid:nihenさんと先週いろいろやりとりしてた中で、一つだけ解決していない問題があった。 utf8フラグが立っているかどうかでPOSIX文字クラスのマッチの挙動が変わるという件。 大変詳しい調査をありがとうございます。トラックバックのブログに書いたように、[:print:]の挙動は、Perlでもutf8フラグの有無でも変わってくるようです。[:print:]は実用できないなと思いました え?まじ?と思うも、一応Perlのコード例も出していたので検証しないわけにはいかない。以下のようなコードで試してみたが、utf8フラグが立っていない場合と同じ結果となり、再現しないのだ。 use encoding 'utf8'; for (split //, "\t\r\n a") { printf("%d:%d:%

    Perlの正規表現のバグ? (前編) - moriyoshiの日記
  • LL FutureでのLarry Wallの話を聞いての感想など - hnwの日記

    先週土曜日、8/30にLL Futureに行ってきました。一番のお目当てはLarry Wallだったんですが、感想としては「このオッチャン、正規表現大好きだなー」ってことですね。 突然ですけど、Perlの功績って凄いと思うんですよ。何が凄いって、「正規表現リテラルの発明」ということに尽きると思うんですね*1。正規表現を文字列リテラルで表現しないといけない言語って当に悲しいですよね。Emacs Lispで正規表現を書こうと思ったらエスケープ地獄ですもん。grepもegrepも少し凝った正規表現を書くとバックスラッシュだらけで泣けてきますよね。 そんなこんなで、Larry Wallが正規表現リテラルを言語として組み込んだのは大英断だったと思います。で、そんな思いつきが出て来たのも、Larry Wallが正規表現が大好きだったからなのかな、と思うんです。正規表現の強力さを手軽に使えたら素晴らし

    LL FutureでのLarry Wallの話を聞いての感想など - hnwの日記
  • http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0809a.html

  • 1