2012-04-19 5 views
0

私はstring1のは、それが剥離している行うにかを確認し

$Item1="I Like Coffee"; 
$Item2="2 I Like Coffee"; 
$Item3="I like Milke"; 

$Item1=$Item2 but $Item1!=$item3 

一つの方法は、perlでstring2の中にあるかどうかを確認しようとしています$ item2の始めに2を出してから比較してください。次のように:

$item=~s/(\d+)//; 

次に比較することができます。 より良い方法は、Item2のItem1のgrepであり、真の場合は残りを行います。しかし、grepはリスト上でしか動作しません。これを行う微妙な方法はありますか?ありがとう!

答えて

1
if (index(STRING,SUBSTRING) >= 0) and print "SUBSTRING in STRING\n" ; 
+0

これは私がPerlでSUBSTR関数が同様にもあります探していたまさにでした。すばらしいです! –

1

Andreyの質問はあなたの実際の質問の一部を解決します。 indexはパターンにそのサブストリングが存在するかどうかを教えてくれますが、2つのストリングがまったく同じであるという同じ判定を返すことができると答えています。

sub majics_match { 
    my ($look, $cand) = @_; 
    return 1 unless length($look // ''); 
    return 0 unless length($cand // ''); 
    my $pos = index($cand, $look); 
    return 0 unless $pos > 0; 
    return substr($cand, 0, $pos) =~ m/^\d\s+/ 
     && substr($cand, $pos + length($look)) eq '' 
     ; 
} 

...またはあなたが正規表現でこれを行うことができます:

$cand =~ m/^\d \Q$look\E$/; 
関連する問題