替换指定开头结尾的df

问题

替换swarms\之后的字符串

遇到的现象

没有替换成功

代码
df=pd.DataFrame({'a':['\REGISTRY\A\Swarms\\2e925746-b0b7-42cb-a5ec-5c4b5f26ea8e','\REGISTRY\A\Swarms\\2e905746-b0b9-42cb-a5ec-1c4b5f26ea8e\have']})
df = df.replace(r'(?<=Swarms\\).+?(?=\\)', 'version', regex=True)
df = df.replace(r'(?<=Swarms\\).+?(?=\s)', 'version', regex=True)
运行结果

前边为Swarms\ 后边为空格的行没有替换成功

我的解答思路

正则匹配,有两种情况
1.替换前边为Swarms\ 后边为\的行
2.替换前边为Swarms\ 后边为空格的行

我想要达到的结果

df=pd.DataFrame({'a':['\REGISTRY\A\Swarms\version','\REGISTRY\A\Swarms\version\have']})

不一定非要用正则匹配,用字符串可能更好理解,也不会复杂,请采纳哦:

import  pandas as pd

def handle(v):
    index1 =v.index('Swarms')+7
    index2 = v.rindex('\\')
    print(str(index1),str(index2))
    if index2 == (index1-1):
        v = v[0:index1] + 'version'
    else:
        v = v[0:index1] + 'version'+v[index2:]

    return v

df=pd.DataFrame({'a':[r'\REGISTRY\A\Swarms\2e925746-b0b7-42cb-a5ec-5c4b5f26ea8e',r'\REGISTRY\A\Swarms\2e905746-b0b9-42cb-a5ec-1c4b5f26ea8e\have']})
df['a'] = df['a'].apply(handle)

print(df)

字符串中的\要用\\代替