我有大的問題,這個字符匹配: -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使其工作?
我有大的問題,這個字符匹配: -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 pattern modifiers
使你的表達會"/[somepatter]/u"
您只需直接將它輸入PHP文件,未轉義。 PHP支持UTF-8字符串,只要你可以將它們視爲不透明。 「/ - /」將匹配(與文字連字符)。 – 2011-06-13 16:50:03