【问题标题】:PHP preg_replace ignoring \h and \v flagsPHP preg_replace 忽略 \h 和 \v 标志
【发布时间】:2011-10-24 22:51:57
【问题描述】:

preg_replace 和 preg_match 忽略了 \h(水平空白)和 \v(垂直空白)标志,我不知道为什么。

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

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

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

【问题讨论】:

    标签: php regex pcre


    【解决方案1】:

    您的 PCRE 版本不支持它。

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

    更新日志显示\h 已在 7.2 版中添加

    【讨论】:

    • 好的,谢谢。我误读了 PCRE 文档,它说 \h 和 \v 是在 Perl 5.10 中添加的,我误读为 PCRE 5.10
    【解决方案2】:

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

    【讨论】:

    • 这可能会有所帮助,但不会尝试回答问题。最好放在评论中。
    猜你喜欢
    • 2018-08-30
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多