前方および後方の先読みを使用するこの正規表現があります。
import re
re.compile("<!inc\((?=.*?\)!>)|(?<=<!inc\(.*?)\)!>")
C#からPythonに移植しようとしていますが、エラーが発生し続けます
look-behind requires fixed-width pattern
意味を失うことなくPythonでこれを書き直すことは可能ですか?
アイデアはそれが次のようなものと一致することです
<!inc(C:\My Documents\file.jpg)!>
アップデート
ルックアラウンドを使用して、変更したHTTPマルチパートテキストを解析しています
body = r"""------abc
Content-Disposition: form-data; name="upfile"; filename="file.txt"
Content-Type: text/plain
<!inc(C:\Temp\file.txt)!>
------abc
Content-Disposition: form-data; name="upfile2"; filename="pic.png"
Content-Type: image/png
<!inc(C:\Temp\pic.png)!>
------abc
Content-Disposition: form-data; name="note"
this is a note
------abc--
"""
multiparts = re.compile(...).split(body)
分割を行うときにファイルパスとその他のテキストを取得するだけで、開始タグと終了タグを削除する必要はありません。
コードの簡潔さは重要です<!inc(
が、正規表現が実行可能になる場合は、形式を変更することもできます。