[#47290] 改行やタグを含むデータをmysqlでinsertするには — Yosuke Suzuki <yosuke.suzuki@...>
鈴木と申します。
8 messages
2010/08/11
[#47303] マッチしない正規表現「.*?」が遅い? — SATOH Fumiyasu <fumiyas@...>
さとうふみやす @ OSSTech です。
7 messages
2010/08/16
[#47314] ruby on github and NonComitterHowto — masayoshi takahashi <maki@...>
高橋征義です。こんにちは。
6 messages
2010/08/18
[#47321] [ANN] Ruby 1.9.2リリース — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
9 messages
2010/08/18
[#47339] [ANN] rcairo 1.8.5 — Kouhei Sutou <kou@...>
須藤です。
10 messages
2010/08/28
[#47340] GAEについて — "T.Soejima" <clev@...2.so-net.ne.jp>
お世話になっております。そえじま@勉強中です。
6 messages
2010/08/28
[ruby-list:47305] Re: マッチしない正規表現「.*?」が遅い?
From:
SATOH Fumiyasu <fumiyas@...>
Date:
2010-08-17 02:44:33 UTC
List:
ruby-list #47305
さとうふみやす @ OSSTech です。
At Tue, 17 Aug 2010 08:43:44 +0900,
dezawa@aliadne.net wrote:
> rubyの実装に詳しいわけでも、正規表現に強いわけでもないですが。。。
同じく…。
> 変数 t の中に9999回現れる "<X" が/<X(?:\s[^>]*)?>.*?<\/Y>/の
> 頭にマッチします。ですから 9999回 変数tの最後まで評価します。
> だから遅いのでは。
("<X\n><Y\n>"*9999).lenth はたったの 79992 ですから、それを 9999回
だとしても、CPU にとっては大したことはないんじゃないでしょうか。
ちなみに CPU は Intel Core 2 Duo T7100 (1.8GHz) を使っています。
先のメールの実行例にあるように、Perl や Python では一瞬で
終わるので、Ruby の実装に特徴か問題があるんじゃないかと思っているのですが。
Ruby 1.9 でも同じく遅いので、正規表現エンジンの問題ではなさそうです。
> /<X(?:\s[^>]*)?>.*?<\/Y>/ ですと文字列最後まで評価するのは 一ヶ所だけだったのが
> /<X(?:\s.*?)?>.*?<\/Y>/ ですと、二ヶ所になるのでさらに遅くなる。
>
> "<X" の出現回数 9999回文字列最後まで評価していたのが
> 8万*9999回(8万の方はだんだん少なくなるけれど)文字列の最後まで評価することになりますから。
--
-- Name: SATOH Fumiyasu (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- Personal Home: http://www.SFO.jp/blog/