1. ホーム
  2. regex

[解決済み] 正規表現で単語全体のみをマッチング

2022-09-25 06:05:02

質問

データベースに保存されている用語集に含まれる、大文字と小文字を区別しない、与えられたコンテンツのブロック内のすべての単語を検索するために使用する正規表現があります。以下は私のパターンです。

/($word)/i

問題は、もし私が /(Foo)/i のような単語が Food のような単語がマッチングされます。 単語の両側には空白または単語の境界が必要です。

のみにマッチするように式を修正するにはどうすればよいですか? Foo という単語だけにマッチするようにするにはどうしたらよいでしょうか。

どのように解決するのですか?

単語境界を使用する。

/\b($word)\b/i

あるいは、Sinan Ünür の例のように "S.P.E.C.T.R.E." を検索している場合です。

/(?:\W|^)(\Q$word\E)(?:\W|$)/i