ユーザーがコンマ区切りのキーワードまたはキー フレーズを入力するテキスト フィールドがあり、サーバーはこれらの値を使用して複数のテキスト本文の一致をチェックします。
したがって、基本的に必要なのは、大文字と小文字を区別しない正確なフレーズを、テキスト本文内の可能なスペースと一致させることです。
次の正規表現を生成することで、キーワードを簡単に照合できます。
キーワードの例:peanut, butter, jelly
生成された正規表現:/peanut|butter|jelly/i
ただし、スペースを持つことは機能しません。指定された値のスペースを次のように置き換えても\s
例:peanut butter, jelly sandwich, delicious
正規表現:/peanut\sbutter|jelly\ssandwich|delicious/i
フレーズに正確に一致する正しい正規表現は何でしょうか? 大文字と小文字を区別せず、PHP の preg_match
?
ありがとう。
編集
これは私がやっていることです:
$keywordsArray = array_map( 'trim', explode( ',', $keywords ) );
$keywordsArrayEscaped = array_map( 'preg_quote', $keywordsArray );
$keywordsRegex = '/' . implode( '|', $keywordsArrayEscaped ) . '/i';
上記は、上記の式を生成します (動作しなかったため、スペースを に置き換え\s
ていません。)
それに続いて、私は簡単に行いますpreg_match( $keywordsRegex, $text );