我正在尝试对此字符串使用 strip() 方法,但它没有给出所需的输出。
s = 'www.yahoo.com'
s = s.rstrip('.com')
print s # The desired output is 'www.yahoo' but this is showing 'www.yah'
连同解决方案,请提供当前输出的原因。
最佳答案
str.strip('.com')
删除指定字符 .
、c
、o
、m
,而不是 .com
字符串的开头和结尾。
要删除 .com
,请使用 str.replace
.
>>> s = 'www.yahoo.com'
>>> s.replace('.com', '') # Replace `.com` with empty string.
'www.yahoo'
更新
正如 Marcin Fabrykowski、David Zwicker 指出的那样,上述解决方案会将 www.company.com
转换为 wwwpany
。
要解决这个问题,您可以使用 Marcin Fabrykowski 的解决方案。或using regular expression :
>>> import re
>>> re.sub(r'\.com$', '', 'www.company.com')
'www.company'
>>> re.sub(r'\.com$', '', 'www.company.com.com')
'www.company.com'
>>> re.sub(r'(\.com)+$', '', 'www.company.com.com') # To remove multiple trailings.
'www.company'
\.com$
匹配字符串末尾的 .com
($
)。 .
被转义,因为 .
在正则表达式中具有特殊含义(匹配任何字符)。
注意我使用了r'原始字符串文字'
; r'\.com' == '\\.com'
关于python - 理解 strip(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203469/