PHP preg_replace игнорирует флаги \ h и \ v - PullRequest
2 голосов
/ 25 октября 2011

preg_replace и preg_match игнорируют флаги \ h (горизонтальные пробелы) и \ v (вертикальные пробелы), и я не могу понять, почему.

$text = preg_replace('/[\h]+/', ' ', $text);

Эта строка должна заменить любую строку последовательных горизонтальных пробельных символов одним пробелом. Вместо этого он заменяет букву «h».

У меня установлен PCRE 6.6. Я знаю [: blank:] как замену \ h, но я не могу найти альтернативы для \ v (и, конечно, я бы предпочел просто выяснить, почему они не работают, вместо того, чтобы заменить их чем-то еще)

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

Это не поддерживается в вашей версии PCRE.

http://www.pcre.org/changelog.txt

В журнале изменений сказано, что \h было добавлено в версии 7.2

1 голос
/ 25 октября 2011

Если это поможет, горизонтальный пробел это просто пробел и табуляция.Итак [ \t]

...