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'
假设我有一个字符串 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'