2

Python ライブラリparsimoniousを使用して小さな言語ユーティリティの文法を書こうとしていますが、文字列、特にエスケープされた引用符やその他の特殊文字を含む文字列をカバーする部分を書くのに苦労しています。

私は次のものを持っています:

string         = doubleString / singleString
doubleString   = "\"" escapedString "\""
singleString   = "'" escapedString "'"

escapedStringまだ定義されていないかのようですが、プログラミング言語の文字列が受け入れると合理的に期待されるものは何でも受け入れる必要があります。どこから始めればよいか考えられません。誰か提案はありますか?

4

2 に答える 2

-1

ここで 2 つのことを行うことができます。r1 つ目は、文字列の前にプレフィックスを追加することです。おそらくやりたいことは、三重引用符を使用することです"""。接頭辞を使用すると、文字列内のエスケープ シーケンスが「標準 C で使用されるものと同様の規則に従って解釈される」ようになります。2 つ目は、文字列を早期に終了させる余分な引用符/アポストロフィを処理することです。

次の例を検討してください。

string = r"""this %is m%y crazy s"\tri""'""ng\s\n%\d\\r''\'"""
print string

あなたが供給している文字列に三重引用符もある場合、これはうまくいかないかもしれません。私はそれをどのように処理するのかわかりません。

于 2013-06-03T21:12:02.493 に答える