Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从字符串中提取不带分隔符的子字符串(包含特定字符)_Python_Regex - Fatal编程技术网

在python中从字符串中提取不带分隔符的子字符串(包含特定字符)

在python中从字符串中提取不带分隔符的子字符串(包含特定字符),python,regex,Python,Regex,我有一个字符串,我想提取一个子字符串,它只包含以下字符[a、T、C、G、\n]。 这些字符可以以任何顺序和数字出现在子字符串中,而无需特定的模式。 在这个子字符串前后我也没有任何可以使用的常量分隔符。 我想以粗体显示的完整字符串和子字符串的示例 AC068547.7智人BAC克隆RP11-458J7来自2,完整序列GAATTCAACTCTAGACAATCAAATGATTGGACTAATGTTTGGAGGCCAACCAACCAACCAAGCAAAGTTGAATTCACAGTC\NTCCTTAG

我有一个字符串,我想提取一个子字符串,它只包含以下字符[a、T、C、G、\n]。 这些字符可以以任何顺序和数字出现在子字符串中,而无需特定的模式。 在这个子字符串前后我也没有任何可以使用的常量分隔符。 我想以粗体显示的完整字符串和子字符串的示例

  • 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个字符。这是否回答了您的问题?