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 回答