[英]search patterns with variable gaps in python
我正在尋找包含以下不同字符串的列表中的模式:
names = ['TAATGH', 'GHHKLL', 'TGTHA', 'ATGTTKKKK', 'KLPPNF']
我想選擇具有模式“ T--T”的字符串(無論字符串如何開始),因此將選擇這些元素並將其附加到新列表中,如下所示:
namesSelected = ['TAATGH', 'ATGTTKKKK']
使用grep我可以:
grep "T[[:alpha:]]\{2\}T"
re python中有類似的模式嗎?
謝謝你的幫助!
我認為這很可能是您想要的:
re.search(r'T[A-Z]{2}T', inputString)
Python中[[:alpha:]]
的等效項為[[:alpha:]]
[a-zA-Z]
。 如果您希望允許使用小寫字母,可以在上面的代碼片段中用[a-zA-Z]
替換[AZ]
。
文檔re.search
。
import re
def grep(l, pattern):
r = re.compile(pattern)
return [_ for _ in l if r.search(pattern)]
nameSelected = grep(names, "T\w{2}T")
注意使用\\w
代替[[:alpha:]]
是的,您可以使用re.search
:
>>> names = ['TAATGH', 'GHHKLL', 'TGTHA', 'ATGTTKKKK', 'KLPPNF']
>>> reslist = []
>>> for i in names:
... res = re.search(r'T[A-Z]{2}T', i)
... if res:
... reslist.append(i)
...
>>>
>>> print(reslist)
['TAATGH', 'ATGTTKKKK']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.