python字符串带字符

2024-04-27 11:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

如何仅从字符串devices/slipstream_internal/slipstream_hq/23中去掉字符devices/

如果我尝试:

device = 'devices/slipstream_internal/slipstream_hq/23'
device = device.strip('devices/')

print(device)

为什么要将我想要的slipstream_internal中的s打印为剪掉?这张照片是:

'lipstream_internal/slipstream_hq/23'

我正在使用Python 3.8


Tags: 字符串device字符照片internalstripdevicesprint
3条回答

strip('devices/')将删除字符串开头和结尾作为参数传递的任何字符。将参数视为要删除的一组字符,而不是要删除的子字符串或序列

如果只想从字符串开头删除'devices/',请尝试使用

device.replace('devices/', '')

甚至更好

device.replace('devices/', '', 1)

以确保仅删除第一个引用

您可能需要使用字符串替换函数

device = 'devices/slipstream_internal/slipstream_hq/23'
device = device.replace('devices/', '')

print(device)

问题

str.strip方法从一开始就删除给定参数中包含的任何字符,无论其顺序如何,直到一个字符不在给定值中为止,因此这些调用是相同的

device.strip('devices/')
device.strip('/devices')
device.strip('/cdsiev')

它包含一个s,因此s被删除


Solution

  • re.sub'^devices/'一起使用(模式中的^确保只删除frmo开头)

    import re
    device = 'devices/slipstream_internal/slipstream_hq/23'
    device = re.sub('^devices/', '', device)
    
  • str.replace,计数为1,但不能删除起始值

    device = device.replace('devices/', '', 1)
    
  • 或者str.removeprefix来自python3.9

    device = device.removeprefix('devices/')
    

相关问题 更多 >