PHP preg_replace忽略\ h和\ v标志

时间:2011-10-24 22:51:57

标签: php regex pcre

preg_replace和preg_match忽略\ h(水平空白)和\ v(垂直空白)标志,我无法弄清楚原因。

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

该行应该用一个空格替换任何连续的水平空白字符串。相反,它正在取代字母'h'。

我安装了PCRE 6.6。我知道[:blank:]作为\ h的替代品但是我找不到\ v的任何替代品(当然我更愿意弄清楚为什么这些不起作用而不是用某些东西替换它们别的)

2 个答案:

答案 0 :(得分:2)

您的PCRE版本不支持。

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

更改日志说在版本7.2中添加了\h

答案 1 :(得分:1)

如果有帮助,水平空白就是空格和制表符。所以[ \t]