金子です。 複雑なのも好きですが、簡単なのはもっと好きです。 On Thu, 27 Oct 2005 16:18:55 +0900 中村 英夫 <cxn03651 / msj.biglobe.ne.jp> wrote: > 本当にやりたいことは、次のような条件で文字列を分解すること > です。 > ・区切り文字は[ \t\r\n\f ] # 最後は全角スペースです > ->ですので、るびきちさん方式はそのままでは流用できそ > うにありません。 > ・全角及び半角の()<>[]「」{}【】内の上記区切り文 > 字は区切りとしない > ・()等のパターンは0以上の任意回出現する ワタシの案で愚直に括弧のパターンを増やしてみました。ついでに /x を使って、 可読性の改善を試みました。全角スペースは真ん中の1つだけです。 # めちゃくちゃ長くなってすみません… $ ruby -Ke -e 'p "あい(う え)お かき".split(/ (?! [\[<<「{{【\((]+ [^\]>>」}}】\))]* ) [\s ]+ (?! [^\[<<「{{【\((]* [\]>>」}}】\))]+ ) /x)' ["あい(う え)お", "かき"] $ ruby -Ke -e 'p "あい{う え}お かき".split(…)' ["あい{う え}お", "かき"] $ ruby -Ke -e 'p "あい【{う え}】お かき".split(…)' ["あい【{う え}】お", "かき"] こういうことでしょうか?ちなみに、 $ ruby -Ke -e 'p "あい【{う え})お かき".split(…)' ["あい【{う え})お", "かき"] こういうのにもマッチしてしまいます (^^; -- 金子誠司 (KANEKO Seiji) GnuPG Fingerprint = 0E77 26A2 BBEE 0D35 098D 2E0C 2FE2 A4DC D383 313C