如何仅从字符串 devices/
中去除字符 devices/slipstream_internal/slipstream_hq/23
?
如果我尝试:
device = 'devices/slipstream_internal/slipstream_hq/23'
device = device.strip('devices/')
print(device)
为什么这会打印出我想要的 s
中的 slipstream_internal
?这打印:
'lipstream_internal/slipstream_hq/23'
我使用的是 Python 3.8
答案 0 :(得分:4)
str.strip
方法从一开始就删除给定参数中包含的任何字符,无论顺序如何,直到一个不在给定值中,因此这些调用是相同的
device.strip('devices/')
device.strip('/devices')
device.strip('/cdsiev')
它包含一个 s
,所以 s
被删除
将 re.sub
与 '^devices/'
一起使用(模式中的 ^
确保它仅删除开头)
import re
device = 'devices/slipstream_internal/slipstream_hq/23'
device = re.sub('^devices/', '', device)
str.replace
计数为 1,但可以删除非起始值
device = device.replace('devices/', '', 1)
或来自str.removeprefix
的{{1}}
python3.9
答案 1 :(得分:1)
strip('devices/')
将从字符串的开头和结尾删除您作为参数传递的任何字符。将参数视为要删除的一组字符,而不是要删除的子字符串或序列。
如果您只想从字符串的开头删除 'devices/'
,请尝试使用
device.replace('devices/', '')
甚至更好
device.replace('devices/', '', 1)
确保只删除第一次出现。
答案 2 :(得分:0)
您可能想要使用字符串替换功能。
device = 'devices/slipstream_internal/slipstream_hq/23'
device = device.replace('devices/', '')
print(device)