ある文字列の文字を順番通りに含む文字列のマッチ

確かノイズ交じりの文字列から、ある一定の文字列郡を読み取るために作った。
一般用途では間違いなく需要が無い・・・



対象文字列(s1): ewvfifgtthurt
探索文字列(s2): eight


このときs1には、s2の'e','i','g','h','t'が順番に含まれているのでtrue.
eighteenをマッチさせようとすると、eightでもマッチしてしまうため、
その時は文字列長が長いものから順番に検証していく。もう少し効率よくかけそう。

C言語

int search(const char *s1, const char *s2){
    while(*s1&&*s2) if(*s1++==*s2)++s2;
    return *s2 ? 0 : 1;
} 

正規表現(Perl)

my $s1= "ewvfifgtthurt ";
my $s2 = "eight";
my $pattern = join('.*', split(//,$s2));
if($s1 =~ /$pattern/){
    # true
    print "true: $&\n";
}else{
    print "false \n";
}