2016-04-04 30 views
-1

我試圖做一些模糊匹配的DNA讀取字符串。我想允許最多1個替換錯誤,同時允許特定的底層對象成爲兩個選項之一(在這種情況下爲A或G)。蟒蛇模糊正則表達式與嵌套或正則表達式

我已經開始與以下:

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "ATTAGATACCCTGGTAGTCA") 
['ATTAGATACCCTGGTAGTCA'] 

如預期,因爲我對匹配的確切字符串作爲預期的,因爲我對匹配的確切字符串

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "GTTAGATACCCTGGTAGTCA") 
['GTTAGATACCCTGGTAGTCA'] 

比賽比賽但第一個鹼基對已從A切換到G(允許)

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "GTTAGATACCCTGGTAGTCx") 
['GTTAGATACCCTGGTAGTCx'] 

個匹配,而預期的,因爲單個替換髮生(C-> X)

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCx") 
[] 

不匹配(如預期),因爲有兩個取代

>>> regex.findall("([A|G]TTAGATACCCTGGTAGTCC){0<=s<=1}", "xTTAGATACCCTGGTAGTCA") 
[] 

應該匹配,由於第一basepair錯誤(x代替A或G)應該被視爲替代。

回答

0

您的最後一個例子換人:第一個鹼基對已置換爲x而最近已經更改爲A。你只允許一個替代,所以沒有匹配。