只是好奇才知道。我注意到我的正则表达式与'\ 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
答案 0 :(得分:2)
对于字边界,escape sequence为\b
而非/b
。
if (preg_match('@\bC#\b@i', $userSkills)) {...
答案 1 :(得分:1)
这是因为#
不是单词字符。我用 | 标记了“C#
”字符串中的单词边界:
|ASP| |Net| ~$~ |C|# ~$~ |Contact|
您看,在“#
”和“”之间没有边界,因此
\b
不匹配。