奇怪的窃听器字符串.strip()使用Python2.7和3.5

2024-06-11 01:01:42 发布

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

我在一个非常简单的字符串操作中得到了一些非常奇怪的结果字符串.strip(). 我想知道这是否是一个只影响我的问题(python安装有问题吗?)还是一个普通的虫子?在

这个窃听器很有感染力,它是这样的:

>>> a = './omqbEXPT.pool'
>>> a.strip('./').strip('.pool')
'mqbEXPT' #the first 'o' is missing!!!

只有当“o”跟在“./”之后时才会发生!在

^{pr2}$

这是怎么回事?! 我已经在python2.7和3.5上测试过了,结果没有改变。在


Tags: the字符串isfirststrippool虫子missing
3条回答

不是虫子。strip除去字符串中作为参数传递给它的任何字符。因此,首先从字符串a中去掉所有前导和尾随的点和斜杠,然后去掉字符串'.pool'所包含的所有字符。在

这就是^{}方法的实际工作原理。在

The chars argument is a string specifying the set of characters to be removed.

The chars argument is not a prefix or suffix; rather, all combinations of its values are stripped:

所以当你说my_string.strip('.pools')时,它将删除该集合中所有的前导和尾随字符(即{'.', 'p', 'o', 'l', 's'})。在

您可能需要使用^{}或{a3}。在

>>> './omqbEXPT.pool'.replace('./', '').replace('.pool', '')
'omqbEXPT'

>>> import re
>>> re.sub(r'^\.\/|\.pool$', '', './omgbEXPT.pool')
'omqbEXPT'

在字符串.strip()将对每个字符执行左剥离和右剥离。意思是,当您要求它剥离pool,它将删除它在字符串两端找到的任何ps或{}s或{}s。这就是它剥离o的原因。在

相关问题 更多 >