PHP: сопоставить странную черту с preg_match () - PullRequest
2 голосов
/ 13 июня 2011

У меня большие проблемы с соответствием этому персонажу: -

Это то, что называется "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заставить его работать?

Ответы [ 2 ]

3 голосов
/ 13 июня 2011

Вы также можете попробовать использовать флаг "u" в выражении, что делает выражение совместимым с utf-8: Модификаторы регулярных выражений

так что ваше выражение будет "/[somepatter]/u"

1 голос
/ 13 июня 2011
if (preg_match ('~\xe2\x80\x93~', $string))
{
    echo "En Dash found";
}

Я полагаю, у вас есть кодировка UTF-8, не так ли?

...