0

$commonWords以下に、string( ) から$input一般的な単語全体 ( ) を削除する正規表現を示します。

  1. 二重引用符または単一引用符で囲まれた単語は無視されます (Google 検索タブの完全一致検索のように)

  2. ハイフンで始まる単語は削除されます('-')が、二重引用符または単一引用符内の単語は削除されません (Google 検索タブの否定検索など)。

    return preg_replace('/\b('.implode('|',$commonWords).')\b/i','',$input);

ありがとう

4

1 に答える 1

1

「単語全体」のみを「免除」の引用符で囲む場合 (たとえば、文全体を引用符で囲むのではなく)、ルックアラウンド アサーションを使用するのは非常に簡単です。

/\b(?<!['"])('.implode('|',$commonWords).')\b(?!['"])/i
   ^^^^^^^^^                                 ^^^^^^^^

後方参照により、2 つの引用符を照合するための追加の手順を実行できます

/\b(?<!(['"]))('.implode('|',$commonWords).')\b(?!\1)/i
   ^^^^^^^^^^^                                 ^^^^^^
于 2013-11-11T09:42:53.563 に答える