我有兩句話:連接兩個字符串,以便他們共同的後綴,前綴合並
AGCGCGATAGC
^^^^
TAGCTATATATA
^^^^
第二個字TAGC
是第一個字常見。所以我想要的結果是:
AGCGCGATAGCTATATATA
^^^^
是否有Perl函數結合這些詞?使用級聯可能導致重複:
AGCGCGATAGCTAGCTATATATA
^^^^^^^^
我有兩句話:連接兩個字符串,以便他們共同的後綴,前綴合並
AGCGCGATAGC
^^^^
TAGCTATATATA
^^^^
第二個字TAGC
是第一個字常見。所以我想要的結果是:
AGCGCGATAGCTATATATA
^^^^
是否有Perl函數結合這些詞?使用級聯可能導致重複:
AGCGCGATAGCTAGCTATATATA
^^^^^^^^
一個簡單的方法做,這是一個字符加入串在一起,不是在你的拼音:
my $s1 = 'AGCGCGATAGC';
my $s2 = 'TAGCTATATATA';
$_ = "${s1}_$s2"
然後匹配並更換最長的常見字符串在隔板的每一側:
s/([ACGT]*)_\1/$1/
$ _ =「$ s1_ $ s2」應該是$ _ =「$ {s1} _ $ s2」(以避免錯誤)並且[ACGT] +應該是[ACGT] *(處理沒有共同子字符串的輸入)。 – 2012-03-21 22:57:08
@ Ekkehard.Horner:謝謝。這就是我沒有測試的結果! – 2012-03-21 23:49:00
您可以使用構造是這樣的:
my $txt = 'AGCGCGATAGCD';
my $txt2 = 'TAGCTATATATA';
print "$txt\0$txt2" =~ /(.*)(.+)\x{0}\2(.+)/ ? "$1$2$3" : "$txt$txt2";
沒有內置函數來做到這一點。你必須自己寫。 – jasonlfunk 2012-03-21 16:04:13
這有幫助嗎? http://www.perlmonks.org/?node_id=484593 – Daenyth 2012-03-21 16:47:18