これはクラスプロジェクトの一部です。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''
させ、引用符以外のものはすべて無視する必要があります。