[#47290] 改行やタグを含むデータをmysqlでinsertするには — Yosuke Suzuki <yosuke.suzuki@...>
鈴木と申します。
8 messages
2010/08/11
[#47292] Re: 改行やタグを含むデータをmysqlでinsertするには
— 田口 浩 <h-taguchi@...>
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
[#47323] 無欲マッチの使い方 — AOKI Yoshihiro <aoki@...>
青木と申します。
6 messages
2010/08/20
[#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:47327] Re: 無欲マッチの使い方
From:
KIMURA Koichi <kimura.koichi@...>
Date:
2010-08-20 02:56:01 UTC
List:
ruby-list #47327
木村です。
On Fri, 20 Aug 2010 11:25:15 +0900
AOKI Yoshihiro <aoki@livretech.co.jp> wrote:
> 青木です。
>
> 文字列は
>
> {(A_{1}-q)}^{2n}=\sum _{k=0}^{2n}_{2n}\mrm{C}_{k}
>
> ですが,
>
> > 始めの \{.+?\} のところで、.はどの文字にもマッチしますから続きの\\mrm の直前まで全部取ってしまう訳ですね。
>
> 「_を伴って,{...} 内が最短の場所で\mrmに接するところ」だと _{2n} になると思ったのですが,
> そうではないのでしょうか(正規表現の冒頭には _ を入れていますので)。
意図していない結果になっていますが、正しく動作しています。
というのも、
_(\{.+?\})\\mrm\
の部分は _ で始まり、{ と } で挟まれた任意の文字列があり、それに続いて
\mrm\ がくるということですから、
_{1}-q)}^{2n}=\\sum _{k=0}^{2n}_{2n}\\mrm
はその条件を満たしてしまいます。
「最短」というのは良く誤解されますが、マッチする全部の組み合わせの中で最短のものを
採用するのではなくて、文字列の先頭からマッチングしていって最初にマッチに成功したもの
(の中で最短)になります。
_{2n}\\mrm だけ取り出したいということであるなら、たとえばあさりさんが
すでに例に出したように } を { } に挟まれる文字から除外してやって、
_(\{[^}]+\})\\mrm\{([CHP])\}_(\{.+?\})
とでもすればよいです。
あさりさんの例ではブラケットの中が \} になっていますが、このエスケープは
不要です(あれ、今の鬼車は警告するのだっけか?)。また、その繰返しを lazy に
する必要はありません。
--
木村浩一