一般的な単語($commonWords
)を文字列($input
)から削除するこの正規表現があります。これは時々含むハイフネーションの単語を無視するように調整したいよく使う単語。一般的な単語削除パターンでハイフネーションされた単語を無視するRegexp
return preg_replace('/\b('.implode('|',$commonWords).')\b/i','',$input);
おかげ
一般的な単語($commonWords
)を文字列($input
)から削除するこの正規表現があります。これは時々含むハイフネーションの単語を無視するように調整したいよく使う単語。一般的な単語削除パターンでハイフネーションされた単語を無視するRegexp
return preg_replace('/\b('.implode('|',$commonWords).')\b/i','',$input);
おかげ
は、試合前や後にはダッシュがない場合、一致のみが許可されているように、これは正規表現の開始と終了にnegative lookaround式を追加し
return preg_replace('/(?<!-)\b('.implode('|',$commonWords).')\b(?!-)/i','',$input);
を試してみてください。任意の単語文字ワット\
preg_replace('/\b('.implode('|',$commonWords).'|\w-\w)\b/i','',$input);
(文字、数字、アンダースコア) 、それはすべてのすべてのcommonwordsを削除し、hypheneをしたすべての単語ます。
彼は無視したいと思う、 e。 *ハイフネーションされた単語を削除しない*。 (これは '\ w'の代わりに' \ w + 'を使用しなければなりません) –
しかし、あなたが削除したいと思っているハイフンを普通の単語に含めるのが最良でしょう。重要かもしれないハイフン付きの言葉。あなたはテキストサンプル全体を検索し、どのサンプルがOKでないかを見ることができます。 – Cedric
return preg_replace('/(?<![-\'"])\b('.implode('|',$commonWords).')\b(?![-'"])i','',$input);
エスケープする記号がさらにある場合は、上記のように動作します。
高度な機能がない別のアイデアは、/([^ - ] | ^)( 'implode(' | '、$ commonWords)')([^ - ] | $)/ i'です。 '$ 1'で置き換えて結果の文字列をトリミングします。 – erisco
おかげでティムはまさに私が探していたことに感謝しました - 治療をしました – atomicjeep