2016-07-13 7 views
1

大文字と小文字の区別なく大文字と小文字を区別するために正規表現が必要です。文字列内の単語の出現を取得する正規表現ですが、その単語を含む単語は含みません

例えば

ターゲットワードが "りんご" であれば、正規表現は以下の文字列でそれを見つける必要があります。

"I found an apple."

"Apple, it's on the ground"

"That ApPLE is nice"

しかしない以下の文字列:

"Many apples"

"Yellow pineapple"

私は」私はPHPを使用して私は周りを検索し、次の正規表現が見つかりました:

preg_match("\W*((?i)apple(?-i))\W*",$string) 

しかし、私は次のエラーを取得するようにとの問題があるようです:

Warning: preg_match(): Delimiter must not be alphanumeric or backslash

正規表現パターンは、この要件を解決することができ何が正しいですか?

答えて

1

正規表現を区切るには、/を追加する必要があります。だから、解決策は、次のようになります。

preg_match_all('/\bapple\b/i', $string, $matches); 
$count = count($matches[0]); // group 0 are the full matches 

i修飾子は、大文字と小文字を区別しない一致して、代わりにg改質剤、我々はpreg_match_allを使用する必要があります。

+0

完璧、ありがとう! – dlofrodloh

関連する問題