タグ

RegExpに関するpotato777のブックマーク (5)

  • Regular Expression Matching Can Be Simple And Fast

    Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...) Russ Cox rsc@swtch.com January 2007 Introduction This is a tale of two approaches to regular expression matching. One of them is in widespread use in the standard interpreters for many languages, including Perl. The other is used only in a few places, notably most implementations of awk and grep.

  • プログラミング言語における正規表現リテラルの必要性について

    Twitterに書いたことのまとめです。 プログラミング言語の仕様の一部として正規表現リテラルを提供することの得失について、JavaScriptを例に説明します。 ■より簡潔なコード 言うまでもありませんが、正規表現リテラルを使った方が簡潔なコードになります。 (new RegExp("abc")).exec(s) // リテラルを使わない場合 /abc/.exec(s) // リテラルを使った場合 また、正規表現リテラルがない場合は、文字列リテラルとしてのエスケープと正規表現としてのエスケープが二重に必要になる結果、コードの保守性が低下します注1。 new RegExp("\\\\n"); // リテラルを使わない場合 /\\n/ // リテラルを使った場合 ■エラー検出タイミング 正規表現リテラルがない場合、実際にその正規表現が評価されるまで記述エラーを検出することができません。正規表

    potato777
    potato777 2013/12/18
    通常はリテラルを使い。動的に組み立てたい時のために文字列からも作れるようにする。というのでいいのかな
  • perl - Unicode「'あ'はAlphabetですが、何か?」 : 404 Blog Not Found

    2010年04月23日07:00 カテゴリLightweight Languages perl - Unicode「'あ'はAlphabetですが、何か?」 結論から言うと、仕様です。 Is "あ" an alphabet? - FloralCompany.log use utf8; print 1 if "あ" =~ /\p{IsAlpha}/; print 2 if "あ" =~ /\p{Alphabetic}/; print 3 if "あ" =~ /[[:alpha:]]/; ナンデヤネーン それも、PerlではなくUnicodeの。 UAX #44: Unicode Character Database Characters with the Alphabetic property. For more information, see Chapter 4 in [Unicode

    perl - Unicode「'あ'はAlphabetですが、何か?」 : 404 Blog Not Found
    potato777
    potato777 2013/09/18
    Unicode+正規表現でひらがながアルファベットとして引っかかるアレ / "漢字もハングルもボポモフォもタイ文字もモンゴル文字もアラビア文字もヘブライ文字もグルジア文字もみーんなAlphabeticなのです。"
  • PHPのPCRE関数にあるUTF-8モードが厄介な件

    事の発端はあるバグチケットから 発端となったのはこのバグから。 Bug(バグ) #3289: 自動リンク機能で末尾のスラッシュを省略すると後続の日語テキストもURLとしてリンクされてしまう - OpenPNE 3 - OpenPNE Issue Tracking System 大雑把に説明すると、 「http://example.comあああ」 といふ文字列に対して自動リンク機能を通したところ 「<a href="http://example.com">http://example.com</a>あああ」 ではなく 「<a href="http://example.comあああ">http://example.comあああ</a>」 のような残念な感じにリンクが張られてしまふといふバグである。 このバグを報告し終へた後、単純な正規表現のミスだらうと高を括って修正に取り掛かってゐた。が、原

    PHPのPCRE関数にあるUTF-8モードが厄介な件
    potato777
    potato777 2013/07/31
    PCREのUTF8モードで :alnum がひらがなもマッチしてしまう。
  • PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis

    できるだけ正確な記述を目指していますが、誤りがありましたら、お知らせ願います。 (最終更新: 2013/3/29 11:22) 正規表現の種類 まず、PHP には以下の 3種類の正規表現があります。 Perl 互換の正規表現 (pcre) mbstring の正規表現 (mbregex) POSIX 拡張正規表現 (regex) このうち、regex は バイナリセーフでない 日語は扱えない PHP 5.3 で非推奨 なので使わない方がいいでしょう。見つけたら、随時 pcre か mbregex で書き直しましょう。 Perl 互換の正規表現 (pcre) 正規表現エンジンは Perl の「PCRE」 日語は UTF-8 のみ扱える UTF-8 を使う場合は、パターン修飾子に u を指定する 文字クラスはロケールの影響を受ける PHP: 文字クラス - Manual 処理の制限値 (p

    PHP の正規表現があまりに複雑なのでまとめてみた - A Day in Serenity @ kenjis
  • 1