У меня большие проблемы с соответствием этому персонажу: -
Это то, что называется "en dash" U + 2013 (согласно http://www.fileformat.info/info/unicode/char/search.htm)
Это совпадение с - в моем тестеокружение (windows и php 5.2.11), но не работает на производственных серверах (ubuntu и php 5.3.2). Даже \ x2013 не удается там.
Есть предложения, как сопоставить этот странный символ? Или как настроить phpзаставить его работать?
Вы также можете попробовать использовать флаг "u" в выражении, что делает выражение совместимым с utf-8: Модификаторы регулярных выражений
так что ваше выражение будет "/[somepatter]/u"
"/[somepatter]/u"
if (preg_match ('~\xe2\x80\x93~', $string)) { echo "En Dash found"; }
Я полагаю, у вас есть кодировка UTF-8, не так ли?