2016-07-14 48 views
0

我有类似的字符串:st= 'Product=Product Name 25' 想要lstrip。输出所需:out= 'Product Name 25'Python:使用lstrip从字符串中删除一个字

对于这个我做这样out = st.lstrip('Product=')

在这里我得到的输出为out= 'Name 25'。这是我不想要的。 因为它是删除我的字符串中的所有出现,但需要删除第一次出现。

所需的输出应该是:OUT = '产品名称25'

+1

这是因为['lstrip'](https://docs.python.org/3/library/stdtypes.html#str .lstrip)接受一组要删除的字符,而不是要删除的字符串模式。 –

+0

你说你想删除第一个发生。这意味着字符串'Product ='可以在字符串中出现_anywhere_,不仅在开始处? –

回答

3

采用分体式改为:

>>> st= 'Product=Product Name 25' 
>>> st.split("Product=")[1] 
'Product Name 25' 
2

使用replace代替:

st = 'Product=Product Name 25' 
print(st.replace('Product=', '')) 
>> Product Name 25 

如果它不是为'='你也可以利用count的说法replace有,例如:

st = 'Product Product Name 25' 
print(st.replace('Product', '', 1)) 
>> Product Name 25 
0

你可以做out = st.replace('Product=Product','Product')out = st.replace('Product=Product','')。我倾向于发现简单和可读。

0

万一你是从一个文本文件中读取键值对,有一个在该标准库一个Python模块:ConfigParser

0

根据该文件,该lstrip功能删除字符的字符。

>>> help(str.lstrip) 

Help on method_descriptor: 

lstrip(...) 
    S.lstrip([chars]) -> str 

    Return a copy of the string S with leading whitespace removed. 
    **If chars is given and not None, remove characters in chars instead.** 

所以st.lstrip('Product=')删除 “P”, “R”, “O”, “d”, “U”, “C”, “T”, “=” 之初“产品=产品名称25" 。然后,这两个词被删除!

我想你的字符串代表一个“key = value”对。 的最佳方式拆分是使用split()方法:

st = "Product=Product Name 25" 

key, value = st.split("=") 
print("key: " + key) 
print("value: " + value) 

你得到:

key: Product 
value: Product Name 25 

只值:

value = st.split("=")[1] 
print("value only: " + value) 

你得到:

value only: Product Name 25 

如果你想“左微调”:

p = "Product=" 
value = st[len(p):] 
print("trimmed value: " + value) 

你得到:

trimmed value: Product Name 25