重词法:消除斜线之间的所有数字。

问题描述 投票:0回答:2

期待。http://some_url.com/api/v1/1/2/3/4" -> http://some_url.com/api/v1/*/*/*/*/我用的是什么。

re.sub(r"/\d+/?", "/*/", str(url), flags=re.IGNORECASE)

实际。http://some_url.com/api/v1/*/2/*/4/

python regex substring substitution
2个回答
3
投票

你可以使用

/\d+(?=/|$)
/\d+(?![^/])

并代之以 /*. 见 搜索引擎演示.

在Python中。

url = re.sub(r"/\d+(?=/|$)", "/*", url)

详情

  • / - a / 烧焦
  • \d+ - 1+位数
  • (?![^/]) - 负向查找,如果下一个字符不是除 / 弦尾 / 需要在当前位置的右边,与正向的一样。(?=/|$) 瞻前顾后)

请看 Python在线演示:

import re
url = 'http://some_url.com/api/v1/1/2/3/4'
url = re.sub(r"/\d+(?=/|$)", "/*", url)
print(url)
# => http://some_url.com/api/v1/*/*/*/*

4
投票

你可以使用

/\d+(?=/|$)

请看 在regex101.com上演示.

© www.soinside.com 2019 - 2024. All rights reserved.