我正在努力使or
条件或0或1匹配以负面看后面但它会抛出错误,如look-behind requires fixed-width pattern
#method1
url = re.sub(r'(?<!(?:https:|http:))//','/',url)
#method2
url = re.sub(r'(?<!https?:)//','/',url)
如何使用正则表达式解决此问题?
示例输入
https://somedomain.com//having//extra//slash
输出
https://somedomain.com/having/extra/slash
我目前正在做以下事情,但我不确定所有情况
url = re.sub(r'(?<!:)//','/',url)
答案 0 :(得分:4)
试试这个正则表达式:
(?<!https:)(?<!http:)//
<强> Click for Demo 强>
<强>解释强>
(?<!https:)
- 负面观察以确保当前位置不在https:
之前(?<!http:)
- 负面观察以确保当前位置不在http:
之前//
- 一旦满足上述两个条件,就匹配双正斜杠//
将所有此类//
替换为/