web-dev-qa-db-ja.com

PHP preg_matchで単語全体を検索

正規表現はまったく新しいです。特定の部分を含む、単語全体と一致するパターンの作成を手伝っていただけませんか?たとえば、「Perform a regular expression match」というテキスト文字列があり、-expressを検索した場合、-expressionを検索すると、フォームPerformなどが表示されます。アイデアを得ましたか?

24
tintix
preg_match('/\b(express\w+)\b/', $string, $matches); // matches expression
preg_match('/\b(\w*form\w*)\b/', $string, $matches); // matches perform,
                                                     // formation, unformatted

どこ:

  • \bは単語の境界です
  • \w+は1つ以上の「Word」文字です*
  • \w*は0個以上の「Word」文字です

PCREについては、 エスケープシーケンス のマニュアルを参照してください。


*注:実際には「Word文字」ではありませんが、アンダースコア_も文字クラス\wに含まれています。

42
Linus Kleen

これは「実行」と一致します。

\b(\w*form\w*)\b

これは「式」と一致します。

\b(\w*express\w*)\b
4
Kyle Wild