1
$s1 = 'c1 n1 n2 c = 44.3 + (w - 2) * (l - 0.5) * 0.836
$s2 = 'c1 n1 n2 c = 41.8 + (w - 2) * (l - 0.5) * 0.744
輸出需要爲($ s1爲基準,因此,$ S2給這裏的輸出)比較兩個字符串和參數化它們perl的
c1 n1 n2 c = param1 + (w - 2) * (l - 0.5) * param2
.param1 41.8
.param2 0.744
因此,基本的想法是,數字,琴絃之間的變化應該被參數..
----------任何想法將是巨大的--------
我預期的解決方案,現在(在尋找更多的東西優雅/更好):
完全參數多在開始 - 那就是,使字符串看起來像
c1 n1 n2 c= param0 + (w - param1) * (l - param2) * param3
然後恢復不改變號碼,然後重新數量PARAMS
$count = 0
@params =();
while($s2 =~ s/(?<!\w)((?:[0-9.]{2,}|[0-9]+)(?:e[+-]?\d+)?)/param$count/){
push(@params, $1);
$count++;
}
然後你對$ s1做同樣的事,創建另一個數組(例如@ref_params)。 然後一個for循環來比較和恢復不變的數字。