考慮這種非貪婪匹配;給定:Perl非貪婪匹配
my $seq = "STARTblablablablaSTARTblablablablaSTOP";
我想匹配STARTblablablablaSTOP
非貪婪。
我試過如下:
($match) = $seq =~ m/(START.*?STOP)/;
($match) = $seq =~ m/(START(.*)?STOP)/;
($match) = $seq =~ m/(START.+?STOP)/;
但是$匹配總是分配給整個字符串,即
STARTblablablablaSTARTblablablablaSTOP
我缺少什麼?
這是因爲$ hit被分配了第一個捕獲變量,它匹配所有內容。你想匹配什麼? – sln
爲什麼不直接搜索您要查找的字符串「TTATGCCCACACACACCCACTCACCCATT」?或者是該字符串動態的一部分?如果你想要'TTAT'的最後一次出現,那麼你可以做'。*(TTAT。*)'。 – chris85
而且它匹配所有東西的原因是隻有一個子字符串'CCATT'太貪婪或者不符合一切。 – sln