我遇到一种特殊的情况,我需要用同一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代码使用任何一种可能的方法来帮助我吗?
感谢您阅读,如果需要更多信息,请告诉我
您可以通过一行regex-replace命令(所有URL为一行)在gvim(或vi,vim)编辑器中完成您想做的事情:
%s/web_url(".*","\(.*services\/\(.*\)\/FeatureServer\/\(.*\)\/query\)\@=/web_url("\2_\3","/g
类似的正则表达式也可以使用VBA或Python完成。如果您确实要使用Excel公式:
=mid([url], 10, find(""",""",[url])-10)
提取“ ABC_584”=LEFT(SUBSTITUTE(MID([url],FIND("services/", [url])+LEN("services/"),1000),"/FeatureServer/","_"), LEN(SUBSTITUTE(MID([url],FIND("services/", [url])+LEN("services/"),1000),"/FeatureServer/","_"))-LEN("/query?"))
提取“服务/”之后的组对于Python,以下是要使用的正则表达式字符串(免责声明:我在当前计算机上没有Python,因此无法验证):
re.sub("web_url(\".*\",\"(?=\(.*services\/\(.*\)\/FeatureServer\/\(.*\)\/query"), r"\2_\3", [your url])