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