タグ

regexpに関するvndnのブックマーク (2)

  • Pythonの正規表現

    Pythonの正規表現 「朔最新版」に寄せられたネタ。 http://~ が10回以上現れたらスパムと判定するような正規表現を書くとき、 (.+? http\:\/\/){10}.+? と書くとCPU負荷がすごいことになります。 (http://.+){10} と書くと普通です。 .+ が左側にあるのが駄目なのかな。 BNFだと左再帰とか右再帰とかあって、 うまく書かないと無限ループに陥るんですけど、 正規表現でもそんな感じの問題があるんですね。 原理的にはBNFの話とは違うと思いますが。 2006-07-15 23:55:04 コメントする この記事へのリンク

  • perl - 自動で /a|b|c/ を /[abc]/ にしてくれたら... : 404 Blog Not Found

    2006年06月16日00:00 カテゴリLightweight Languages書評/画評/品評 perl - 自動で /a|b|c/ を /[abc]/ にしてくれたら... 正規表現においては、/a|b|c/(alteration)は[abc](character class)にすべし、というのは、perlに限らない常識です。 Mastering Regular Expression Jeffrey E. Friedl [邦訳: 詳説 正規表現] qootas.org/blog - perl regex performance"|"(パイプ)を使った正規表現はめちゃくちゃ遅いから使わないように、ということです。確かにベンチマークを取ると32倍速いです。 どうせならPerl自身が内部で/a|b|c/を[abc]にしてくれたらと思ったことありませんか? 少なくとも、正規表現を仕事で使う

    perl - 自動で /a|b|c/ を /[abc]/ にしてくれたら... : 404 Blog Not Found
  • 1