0

たとえば、この文字列が与えられた場合

"asdf bob(1, 2, "a")"

分割して欲しいのですが

["asdf", "bob", [1, 2, "a"]]

SHLEXを使ってみましたが、単純すぎるようです。括弧を異なる配列に分割せず、コンマを正しく分割しません。

今、私はいくつかのforループといくつかのトリックでこれを行うことができるかもしれないことを知っていますが、これのためにスペース、時間、および速度を節約したいと思います。助けていただければ幸いです、ありがとう!

PS複数行を分割できるはずなので、たとえば関数がある場合。

"   desu(1, 2){    \n
        asdf       \n
    }               "

として分割する必要があります

["desu", [1, 2], ["asdf"]]

カーリーブレースを異なるリストに分割することもできます。

これは多くの時間を節約するでしょう!ありがとう!

4

1 に答える 1

1

pyparsingを見たことがありますか?これはあなたを助けることができるかもしれない一般的なPython解析モジュールです。構文解析は、プログラミング言語などの再帰下降構文解析に使用できます。すでに実装されている例の1つに従わない言語の場合、pyparsingモジュールの学習曲線はかなり急になります。ただし、あなたの言語については、おそらく彼らのWebサイトにある例の1つを再利用できると思います。

于 2012-09-15T17:38:24.763 に答える