PHP:用preg_match匹配奇怪的破折号

问题描述

| 我在匹配此角色时遇到了很大的问题:– 这就是所谓的“破折号” U + 2013(根据http://www.fileformat.info/info/unicode/char/search.htm) 在我的测试环境(Windows和PHP 5.2.11)中与-匹配,但是在生产服务器(ubuntu和PHP 5.3.2)上失败。即使\\ x2013在那里也失败。 有什么建议如何匹配这个奇怪的字符吗?或者如何配置PHP使其工作?     

解决方法

        
if (preg_match (\'~\\xe2\\x80\\x93~\',$string))
{
    echo \"En Dash found\";
}
我相信您已经使用UTF-8编码,不是吗?     ,        您也可以尝试在表达式上使用\“ u \”标志,以使表达式与utf-8兼容:regex模式修饰符 所以你的表情是
\"/[somepatter]/u\"