我有一个很大的字符串,其中可能包含许多类似于该结构的路径:
dirA / dirB / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn
,我需要将字符串module is-loaded $MODULENAME && module unload $MODULENAME
部分之前的所有内容替换为“ a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn
”,以使
结果将如下所示:
local / a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn
该字符串可能不仅包含dirA / dirB / 字符串的开头。
如何在Python中进行字符串操作?
答案 0 :(得分:3)
使用正则表达式,您可以用"/"
替换最后一个"locals/"
为止的所有内容{p}
import re
s = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
re.sub(r'.*(\/.*)',r'local\1',s)
您将获得:
'local/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
答案 1 :(得分:3)
使用os
模块
例如:
import os
path = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print(os.path.join("locals", os.path.basename(path)))
答案 2 :(得分:0)
另一种选择是在"/"
上拆分字符串,然后将"locals/"
与结果列表的最后一个元素连接起来。
s = "dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn"
print("locals/" + s.split("/")[-1])
#'locals/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
答案 3 :(得分:0)
这看起来如何?
inputstring = 'dirA/dirB/a1ed4f3b-a046-4fbf-bb70-0774bd7bfcn'
filename = os.path.basename(inputstring)
localname = 'local'
os.path.join(localname, filename)