Trim 找到 5 个相同字符后的字符串

Trim string after 5 of the same chars are found

假设我有一个字符串 AAAGCTTACGAAAAAAACGTA,我想删除出现 4 个 A 之后的所有内容,包括出现的内容,无论它出现在字符串中的什么位置。所以对于这个例子,我们在修剪后留下 AAAGCTTACG。什么是快速有效的方法来解决这个问题?

只是 find 那些 AAAA 如果有的话,然后切片:

>>> s = "AAAGCTTACGAAAAAAACGTA"
>>> s[:s.find("AAAA")]
'AAAGCTTACG'

但是,这种方式首先要检查字符串是否包含AAAA,否则会切掉最后一个字符。

你可以使用贪心匹配,什么都不替换。

import re
new_string = re.sub(r'AAAA.*', '', original_string)

另外,AAAA 也可以表示为 A{4} 如果您觉得它更易读。

您可以使用 str.split():

>>> s = "AAAGCTTACGAAAAAAACGTA"
>>> s.split("AAAA", 1)[0]
'AAAGCTTACG'