中村です。 金子さん、ありがとうございます。 > ワタシの案で愚直に括弧のパターンを増やしてみました。ついでに /x を使って、 > 可読性の改善を試みました。全角スペースは真ん中の1つだけです。 > $ ruby -Ke -e 'p "あい(う え)お かき".split(/ (?! [\[<<「{{【\((]+ [^\]>>」}}】\))]* ) [\s ]+ (?! [^\[<<「{{【\((]* [\]>>」}}】\))]+ ) /x)' > $ ruby -Ke -e 'p "あい{う え}お かき".split(…)' > $ ruby -Ke -e 'p "あい【{う え}】お かき".split(…)' > こういうことでしょうか?ちなみに、 WinXP上で >ruby -Ks -e "p 'あい(う え)お<かき>くけこ さし'.split(/ (?! [\[<<「{{【\((]+ [^\]>>」}}】\))]* ) [\s ]+ (?! [^\[<<「{{【\((]* [\]>>」}}】\))]+ ) /x)" ["あい(う え)お<かき>くけこ", "さし"] こういう感じの入力文字列です。でも、これでもちゃんと判別し てくれますね。 > $ ruby -Ke -e 'p "あい【{う え})お かき".split(…)' > こういうのにもマッチしてしまいます (^^; これは・・・、ちょっと期待した動作と違います。。。括弧の種 別の対応はきちんと見たい訳で。。 ここまで来ると私の能力では後でちょっといじることが出来なく なりそうで躊躇してしまいますが、正規表現ってパズルのようで面 白いものですね。 中村(cxn03651 / msj.biglobe.ne.jp)