寻找子串

时间:2009-10-14 16:54:00

标签: python

提前致谢。     我有一个字符串:

A = 'asdfghjklmn'

如何获得最大长度为3的倍数的子字符串?

5 个答案:

答案 0 :(得分:4)

您可以使用slice notation和整数运算。

>>> a = 'asdfghjklmn'
>>> a[:len(a)//3*3]
'asdfghjkl'   
>>> len(a)
11
>>> len(a[:len(a)//3*3])
9

通常,n//k*k将产生小于或等于 n k 的最大倍数。

答案 1 :(得分:1)

看起来你正在寻找这样的东西:

>>> A = 'asdfghjklmn'
>>> mult, _ = divmod(len(A), 3)
>>> A[:mult*3]
'asdfghjkl'

此处生成的字符串的长度是三的倍数,它将是具有此类长度的A的最长子字符串。

答案 2 :(得分:1)

又一个例子:

>>> A = '12345678'
>>> A[:len(A) - len(A)%3]
'123456'
>>> 

答案 3 :(得分:0)

这是你想要的吗?

A = 'asdfghjklmn'
A[0:(len(A)/3)*3]
'asdfghjkl'

答案 4 :(得分:0)

前言它永远不会像实际使用 math 那样找到最长的3个子串的倍数,这是使用正则表达式的方法:< / p>

>>> re.findall("^(?:.{3})*", "asdfghjklmn")[0]
'asdfghjkl'

更改3量词将允许您获得不同的倍数。