簡體   English   中英

python中具有可變間隙的搜索模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM