我有此正则表达式使用向前和向后的前瞻:
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(
格式,如果它使正则表达式可行。
对于路径和同一数组中的“所有内容”,只需在开始和结束标记上进行分割:
从文档中:
import re
pat = re.compile("\<\!inc\((.*?)\)\!\>")
f = pat.match(r"<!inc(C:\My Documents\file.jpg)!>").group(1)