タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Programmingとregular_expressionとprogrammingに関するpipeheadのブックマーク (26)

  • Perl正規表現「$& $` $'」のオーバーヘッド検証

    $&によるオーバーヘッドとは? perlfaq6によると **なぜ $&とか$`、$'といった変数を使うとプログラムが遅くなるのですか? プログラムのどこかでそういった変数が使われているのを見つけてしまうと、Perlはすべてのパターンマッチに対してそれに対処することをやらなければなりません。同様のからくりが、$1、$2などを使ったときにも行なわれます。このためすべての正規表現において、部分正規表現を捕捉するために同じコストがかかることになります。しかし、スクリプト中で $&などを全く使っていないのであれば、正規表現は部分正規表現を捕捉して不利になるようなことはしません。ですから、可能であれば $&や$'、$`を使わないようにすべきなのですが、それができないのであれば(一部のアルゴリズムはこれを使うのが便利なのです)、一度これらの変数を使ってしまったら好きなように使いましょう。なぜなら、罰金

    Perl正規表現「$& $` $'」のオーバーヘッド検証
  • Enjoy×Study - JavaScriptの正規表現で、メタ文字の"\s","\d"はクロスブラウザでの互換性が無い。

    正規表現で"\d"は、"[0-9]"と一緒だとずっと思っていましたが、FireFoxでは全角数字もマッチします。(FireFox1.5.0.4で確認) /\d/.test('1') // =>true /\d/.test('1') // =>trueちなみにIE 6、Opera 9では、"/\d/.test('1')"はfalseとなります。 気になったので、"\s"、"\w"についても調べてみたところ、下記のような結果になりました。 パターンFireFox 1.5,2.0IE 6, 7Opera 9 /\s/.test(' ') // 半角truetruetrue /\s/.test(' ') // 全角truefalsetrue /\d/.test('1') // 半角truetruetrue /\d/.test('1') // 全角truefalsefalse /\w/.test('

    Enjoy×Study - JavaScriptの正規表現で、メタ文字の"\s","\d"はクロスブラウザでの互換性が無い。
  • perlre - daily dayflower

    Perl 5 以降で使われる正規表現(いわゆる perlre)は,標準的な正規表現とくらべて拡張されています。昔むか〜し(Perl 4 を使っていた頃)は,可搬性が低くなるので個人的に拡張正規表現は使っていなかったのですが,今は便利なだけではなく可読性が高まるので躊躇せず使っています。 指定回数マッチの {数字} 標準正規表現で '12345' =~ m/^\d\d\d\d\d$/と書くところ, '12345' =~ m/^\d{5}$/ のように書けます。\d{3,5} と書くと,3回〜5回の最長マッチ,\d{,5} と書くと5回以下のマッチ,\d{3,} と書くと3回以上の最長マッチを行います。この記法は可読性が高くなるのでよく使います。 あと,(後述しますが)基的に正規表現のコンパイルは変数の interpolation 後に行われるので, my $c = 3; if ('dooo

    perlre - daily dayflower
  • マッチングでエラー「Unmatched [ in regex; marked by~」

    2006年2月 8日(水) 17時13分31秒 [Perl/CGI] マッチングでエラー「Unmatched [ in regex; marked by~」 正規表現を使ったマッチングで、「Unmatched [ in regex; marked by~」という謎のエラーメッセージが出てしまうことがあります。これは、マッチング対象の日語文字列の文字コードがSHIFT-JISだった場合に発生します。この問題を解決するには、問題のある文字の前に「\」を付けるか、文字コードをUnicodeなどに変えてから処理を行う必要があります。 WindowsではSHIFT-JISが標準だし、UTF-8Netscape4が読まないし…という感じで、CGIの文字コードは大抵SHIFT-JISで作ってるんですけども、SHIFT-JISの問題でまた煮詰まりました。(^^;;; 正規表現で文字列の比較を行ってる箇

    マッチングでエラー「Unmatched [ in regex; marked by~」
  • すべての漢字を取り出す正規表現 - totonのブログ

    http://www.unixuser.org/~euske/doc/python/sample.py.html # 日語トークンを切り出すための正規表現。 JP_TOKEN = re.compile(u"[一-龠]+|[ぁ-ん]+|[ァ-ヴ]+|[a-zA-Z0-9]+") http://www.ascii.co.jp/pb/ascii/archive/aftercare/1999.html [亜-煕]はJIS漢字を検出するときに使う正規表現になります。 文中で触れている「一太郎 Lite2」の正規表現はUnicode仕様なので,すべての漢字を検出するには,[一-龠]を使用してください(龠は音読みで「ヤク」,訓読みで「ふえ」,Unicodeでは「9FA0」にあたります)。 追記 ※「すべての漢字を取り出す正規表現」については、id:toton:20051105 に記事を追加しました。

    すべての漢字を取り出す正規表現 - totonのブログ
  • Shift-JISテキストを正しく扱う

    最近の更新履歴 2006-10-28: 「Shift-JISの漢字を含むファイル名/パス名」について若干追記。 2005-03-26: 「最初に」中、XML日語プロファイル第2版に基づき、若干追記。 2005-03-09: 「最初に」中、文章を若干修正。 2003-06-24: Shift-JISの漢字を含むファイル名/パス名 2003-05-31: 「最初に」中、「シフトJIS」などの表記について。 2003-05-24: CP932重複定義文字の変換 2002-08-30: Perl 5.8.0 について。 2002-01-17: 長い文字列に対する正規表現検索 2001-12-15: ShiftJIS::Collate が overrideCJK パラメータを廃止したことに伴う 日語文字列を並び替えるの書き換え。 最初に 日語の文字コードにはいくつかのものが使われています。ある

    pipehead
    pipehead 2001/12/15
    エラーメッセージの意味