用相同URL的aplha数字文本的组合替换URL中的字母数字文本

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

我遇到一种特殊的情况,我需要用同一URL中的另一个文本的组合来替换URL中的字母数字文本

这里是示例网址

web_url(“ ABC_584”,“ URL = https://ABCD.com/dEKgZETqwmDAh1rP/ArcGIS/rest/services/Overlay_Character/FeatureServer/0/query

在此URL中,我需要将“ ABC_584”替换为“ Overlay_Character_0”

“ ABC_584”不是静态的,并且会发生变化,因此web_url(“ XYZ_0-9”(在这种情况下,即XYZ_0-9)后的引号中的任何内容都必须替换为“ Service /”之后的文本,后面的数字FeatureServer /来自上述网址

另外一件事“ ABC_584”也可以是完全数字的“ 123_123”!

有100个URL,我需要这样做,因此无法手动执行,我尝试了VB脚本,编写了无用的Excel公式

这里有人可以通过Excel或Python代码使用任何一种可能的方法来帮助我吗?

感谢您阅读,如果需要更多信息,请告诉我

python python-3.x excel excel-formula python-requests
1个回答
0
投票

您可以通过一行regex-replace命令(所有URL为一行)在gvim(或vi,vim)编辑器中完成您想做的事情:

%s/web_url(".*","\(.*services\/\(.*\)\/FeatureServer\/\(.*\)\/query\)\@=/web_url("\2_\3","/g

类似的正则表达式也可以使用VBA或Python完成。如果您确实要使用Excel公式:

  1. =mid([url], 10, find(""",""",[url])-10)提取“ ABC_584”
  2. =LEFT(SUBSTITUTE(MID([url],FIND("services/", [url])+LEN("services/"),1000),"/FeatureServer/","_"), LEN(SUBSTITUTE(MID([url],FIND("services/", [url])+LEN("services/"),1000),"/FeatureServer/","_"))-LEN("/query?"))提取“服务/”之后的组
  3. 使用Excel公式将(1)替换为(2)

对于Python,以下是要使用的正则表达式字符串(免责声明:我在当前计算机上没有Python,因此无法验证):

re.sub("web_url(\".*\",\"(?=\(.*services\/\(.*\)\/FeatureServer\/\(.*\)\/query"), r"\2_\3", [your url])
© www.soinside.com 2019 - 2024. All rights reserved.