如何使用Python / Regex用变量替换/替换部分网址

时间:2019-03-31 01:48:55

标签: python regex

我正在尝试用变量中的字符串替换以下URL的一部分: https://somedomain.eu/api/one/some/2018/05/data 如何排除某些组并仅使用一个组。

这就是我所做的:

def change(var_data):
  var = str(var_data) // for example: 11
  url = 'https://somedomain.eu/api/one/some/2018/05/data'
  url2 = re.sub(r'(\d\d)', var, url)
  print(url2)

打印内容如下:https://somedomain.eu/api/one/some/1111/11/data 这是错误的,因为我只需要更改05 to 11,而无需更改2018 to 1111

其他版本:

data_url_2 = re.sub(r'.+/(\d\d)/.+', month, data_url)
print(data_url_2)  

print ='11'

我当时正在考虑寻找一种方法来划分3个小组,并排除第一个和第三个小组:

data_url_2 = re.sub(r'(.+/\d\d\d\d)(\d\d)(/.+)', month, data_url)

2 个答案:

答案 0 :(得分:0)

可能不需要正则表达式,但是无论如何我们都要这么做。

condition(item, conditions) {
  if(!item) return false;
  if(!Array.isArray(conditions) || (conditions.length === 0)) return true;
  for(let i = 0; i < conditions.length; i++) {
    if(item[conditions[i].key] !== conditions[i].value) {
       return false;
    }
  }
  return true;
}

  

我当时正在考虑寻找一种方法来划分3个小组,并排除第一个和第三个小组:

什么?

答案 1 :(得分:0)

没有正则表达式的一种方式

def change(var_data):
  var = str(var_data)
  url = 'https://somedomain.eu/api/one/some/2018/05/data'
  url1 = url.split('/')
  url2 = '/'.join(url1[:-2] + [var] + [url1[-1]])
  print(url2)

change('11')
#https://somedomain.eu/api/one/some/2018/11/data