替换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)
字符串中的\要用\\代替