我有这个正则表达式使用向前和向后的前瞻:
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(如果它使正则表达式可行,我愿意更改格式。
<!inc(
对于同一数组中的路径+“所有内容”,只需在开始标记和结束标记上进行分割:
import re p = re.compile(r'''<!inc\(|\)!>''') awesome = p.split(body)
您说您对结束标记很灵活,如果)!>可以在代码的其他地方出现,则可能需要考虑将结束标记更改为类似)!/inc>(或其他任何东西,只要它是唯一的)即可。
)!>
)!/inc>
看到它运行。