1

知りたいだけです。'\ b'で使用すると、正規表現で文字列'C#'が見つからないことに気付きました。

if (preg_match('@\bC#\b@i', $userSkills)) {...

ただし、「\ b」を削除すると、文字列を見つけることができます。

ここで何が問題になるのか誰か知っていますか?

一致するものを見つけるための文字列:

Unified Communications Design Specialist ~$~ Windows 95 or 98 ~$~ Windows 2000 
or XP ~$~ Linux ~$~ Visual Basic ~$~ ASP Net ~$~ C# ~$~ Contact Center Design 
Specialist ~$~ Internet Programming ~$~ Object oriented programming ~$~ 
Databases ~$~ Unified Commucations ~$~ Contact Center Solutions ~$~
Junior Developer ~$~ Solutions Engineer 
4

2 に答える 2

2

エスケープ シーケンスは単語境界用ではあり\bません。/b

if (preg_match('@\bC#\b@i', $userSkills)) {...
于 2013-02-11T14:18:00.210 に答える
1

それ#は単語の文字がないからです。あなたの文字列の " C#"の周りの単語の境界を次のようにマークしました|

|ASP| |Net| ~$~ |C|# ~$~ |Contact|

ほら、「#」と「」の間に境界がないので、\b一致しません。

于 2013-02-11T16:49:50.807 に答える