在python中从字符串中提取不带分隔符的子字符串(包含特定字符)
我有一个字符串,我想提取一个子字符串,它只包含以下字符[a、T、C、G、\n]。 这些字符可以以任何顺序和数字出现在子字符串中,而无需特定的模式。 在这个子字符串前后我也没有任何可以使用的常量分隔符。 我想以粗体显示的完整字符串和子字符串的示例在python中从字符串中提取不带分隔符的子字符串(包含特定字符),python,regex,Python,Regex,我有一个字符串,我想提取一个子字符串,它只包含以下字符[a、T、C、G、\n]。 这些字符可以以任何顺序和数字出现在子字符串中,而无需特定的模式。 在这个子字符串前后我也没有任何可以使用的常量分隔符。 我想以粗体显示的完整字符串和子字符串的示例 AC068547.7智人BAC克隆RP11-458J7来自2,完整序列GAATTCAACTCTAGACAATCAAATGATTGGACTAATGTTTGGAGGCCAACCAACCAACCAAGCAAAGTTGAATTCACAGTC\NTCCTTAG
- AC068547.7智人BAC克隆RP11-458J7来自2,完整序列GAATTCAACTCTAGACAATCAAATGATTGGACTAATGTTTGGAGGCCAACCAACCAACCAAGCAAAGTTGAATTCACAGTC\NTCCTTAGTGAAAAATAAATATATTTTTGGTTGGTCAACCAACCAACCAACCAGTC\NTCCTTAGTTAGTAGTAAATAAATAAATAAA\n
- AC1284347.7人类XXX从3号克隆RP11-1238J7,CDStagggctgagatcgggtaag\ngagagatcggagctgaat
max()
选择最长匹配项:
重新导入
示例='AC1284347.7智人XXX克隆RP11-1238J7自3,CDSTAGGCTGAGAGTCGGCGTAAG\NGAGATCGGAGGAGCTGAT'
模式='[ACGT\n]*'
最大值(关于findall(模式,示例))
'tagggctgagatcgggtaag\nGAGATCGGAGAGCTGAAT'
如果字符串可能包含多个感兴趣的序列,则可以使用列表理解仅返回特定长度的序列:
[如果len(seq)>=7,则在关于findall(模式,示例)中的seq对应seq]
['tagggctgagatcgggtaag\nGAGATCGGAGAGCTGAAT']
您已经尝试了什么?你面临哪些具体问题?感谢您的考虑和支持。为什么不在“AC0…”、“BAC”和“AC1…”中匹配“AC”?这个问题不清楚,因为不够清楚,你是对的,这个问题不够好。我可以添加一个条件,即子字符串的长度必须至少为7个字符。这是否回答了您的问题?