• 締切済み

pythonでsplitの使い方

rubyで次のようなコードを実行すると期待通りの結果が得られるのですが、pythonでは上手くいきません。pythonとrubyでは正規表現の使用の仕方に相違があるのでしょうか? str = "あかさたな&12345|abcde&67890|#$()=" cat = str.split(/&|\|&|/) print cat rubyでは ["あかさたな", "12345", "abcde", "67890", "#$()="] となりますが、 pythonでは / の所でinvalid syntax と叱られます。

みんなの回答

  • struct
  • ベストアンサー率72% (32/44)
回答No.1

一般的に、あるプログラミング言語で書かれたコードは 別の言語の処理系で動作しません。 言語ごとに固有の文法があるためです。 Pythonでは文法と正規表現が混合していないので、 複雑な文字列の分割は正規表現ライブラリを用いて書きます。 また、strという名前のタイプが既に存在するので、 変数として使用しないでください。 さらに、バイト文字列において日本語のみに対する特別の配慮は存在しません。 正しく動作するように文字列をunicodeにして処理してください。 import re s = u"あかさたな&12345|abcde&67890|#$()=" cat = re.split(ur"&|\||&||", s) print cat

030102
質問者

お礼

早速に有難うございます。 pythonも諦め様かなと思っていた矢先だったので非常にうれしく思います。目下pythonチュートリアルなどで勉強しておりますが、更に判り易い書籍などを教えていただければ有難く思います。

関連するQ&A