SQL LIKE ステートメントと同じ機能を探しています。
$match = match('abcdefg', 'a_c*fg');
ここで、「_」は 1 文字、「*」は複数を表します。
これらの文字を「*」の「.+」のような正規表現部分に置き換える必要がありますが、これらの2つの「_」と「*」を除いて、正規表現文字をpreg_quoteでエスケープする前に行う必要があります。
それを行う簡単な方法はありますか?
fnmatch関数を見てください
また
like('goo*','google.com'); --> strpos('goo','google.com') === 0
次のものでは、strpos を使用できます。
like('*gl*','google.com'); --> strpos('gl', 'google.com') !== false;
次は equals を使用できます。
like('google.com','google.com') --> 'google.com' == 'google.com'
もちろん、それらすべてに正規表現を使用できます。
like('goo*','google.com'); --> preg_match('#^goo.*$#','google.com')
like('*gl*','google.com'); --> preg_match('#^.*gl.*$#', 'google.com');
like('google.com','google.com') --> preg_match('#^google\.com$#', 'google.com')
パターンを正規表現に変換するには、最初に ^ を配置し、最後に $ を配置してから、* を .* に置き換え、.s をエスケープします。