0

これはクラスプロジェクトの一部です。PythonコードをスキャンするJavaを使用してスキャナーを作成しました。次に、実行時間をPythonスキャナーのFlex実装と比較する必要があります。

そこで、Flexを使用してPython文字列リテラルを照合しようとしています。文字列リテラルの仕様をPythonドキュメントからC正規表現に変換しようとしています。

これは私がこれまでに持っているものです:

[r|u|ur|R|U|UR|Ur|uR|b|B|br|Br|bR|BR]?('(([^\\]|[^\n]|[^'])|\\.)*'|\"(([^\\]|[^\n]|[^'])|\\.)*\"|'''([^\\]|\\.)*'''|\"\"\"([^\\]|\\.)*\"\"\")

しかし、私がそれを次のテキストに適用すると:

r'' lol
r''

両方の行に一致します。それぞれを個別に一致r''させ、引用符以外のものはすべて無視する必要があります。

4

1 に答える 1

0

「「\」または改行または引用符以外のすべてのソース文字[^\\\n\']は、以前に上記で書いたものの代わりに変換され[^\\]|[^\n]|[^']ます。

regex101.comでエラーが見つかりました。それは本当に役立つ正規表現分析ツールを持っています。

于 2013-02-27T01:32:31.827 に答える