【发布时间】:2012-11-14 08:50:18
【问题描述】:
我正在尝试使用匹配 /../ 之前的子字符串的正则表达式从字符串中删除某些内容,这些子字符串要么从开头开始,要么跟在 / 之后。
到目前为止我有
re.sub('(?<=[/]|\A).+(?=[/][.][.][/])', '', str)
当我尝试这个或其他变体时,我不断收到错误,从删除第一个 / 之后的所有项目到不删除分组的第一个字符。
【问题讨论】:
-
请提供示例字符串和预期结果,这样更容易理解。
-
该正则表达式甚至无法编译,因为
(?<=/|\A)在 Python 正则表达式中是非法的(lookbehinds 必须具有恒定宽度,并且匹配 0 或 1 个字符)。 -
基本上,我想采取类似 test/new/../ 并返回 test//../ 我发现使用后视将从 / 的第一个实例开始并继续到 /../ 而我想要 /../ 最接近 /../ 的实例并删除其间的所有内容。
标签: regex python-3.x