這個問題的標題可能不足以描述我正在嘗試解決的問題,所以希望我的示例能夠得到重點。我希望一個Python正則表達式是這個職位的合適的工具:Python RegEx重疊
首先,我們lookig這些字符串中的任何一個:
- CATGTG
- CATTTG
- CACGTG
二,圖案爲:
- 串
- 6-7字母
- 串
例
- 匹配:CATGTGXXXXXXCACGTG
- 沒有匹配:CATGTGXXXCACGTG(因爲之間3個字母)
第三,當找到匹配項時,從前一匹配的結尾開始下一個搜索,包括在內。每場比賽的報告索引。
例:
輸入(空格爲可讀性):XXX CATGTG XXXXXX CATTTG XXXXXXX CACGTG XXX
工作流(空格爲可讀性):
- 發現匹配: CATGTG XXXXXX CATTTG
它啓動一個牛逼3
在CATTTG
位於C恢復搜索中找到匹配:CATTTG XXXXXXX CACGTG
- 它開始於15
等等...
經過幾個小時的修補後,我的抱歉嘗試沒有產生我所期望的:
regex = re.compile("CATGTG|CATTTG|CACGTG(?=.{6,7})CATGTG|CATTTG|CACGTG")
for m in regex.finditer('ATTCATGTG123456CATTTGCCG'):
print(m.start(), m.group())
3 CATGTG
15 CATTTG (incorrect)
如果您可以通過RegEx瞭解這一點,那麼您就是一位天才。謝謝:d
你可以發佈你已經嘗試過的和期望的輸出嗎?你想要一個yes/no的測試字符串等。 – CJC