Rstrip无法删除正确的反斜杠或提供位置

问题描述 投票:0回答:3

所以,

我有一个看起来像\ uisfhb \ dfjn的字符串长度会有所不同。我努力使自己无法直觉,反斜杠是转义字符。我只想要“ dfjn”我目前有

 more = "\\\\uisfhb\dfjn"
 more = more.replace(r'"\\\\', r"\\") 
 sharename = more.rsplit(r'\\', 2)
 print(sharename)

我马上回来['','uisfhb \ dfjn']

python
3个回答
0
投票

如果要在文字反斜杠上对字符串进行分区,则需要在分隔符中使用另一个反斜杠来对反斜杠进行转义。

>>> more.split('\\')
['', '', 'uisfhb', 'dfjn']

>>> more.rsplit('\\', 1)
['\\\\uisfhb', 'dfjn']

>>> more.rpartition('\\')
('\\\\uisfhb', '\\', 'dfjn')

一旦字符串被分割,可以使用索引-1访问最后一个元素:

>>> sharename = more.rsplit('\\', 1)[-1]
>>> sharename
'dfjn'

或使用序列拆包语法(*运算符]

>>> *_, sharename = more.rpartition('\\')
>>> sharename
'dfjn'

0
投票

我认为这是原始字符串的问题。试试这个:

more = "\\\\uisfhb\dfjn"
more = more.replace("\\\\", "\\")
sharename = more.split("\\")[2] # using split and not rsplit
print(sharename)

0
投票

如果共享名是树中的最后一个节点,将得到它:

 >>>more = "\\\\uisfhb\dfjn"
 >>>sharename = more.split('\\')[-1]
 >>>sharename
 'dfjn'
© www.soinside.com 2019 - 2024. All rights reserved.