PHP正则表达式不起作用

时间:2016-01-06 01:24:27

标签: php regex

我一直在使用regexr.com来构建和测试在我的php程序中使用的正则表达式。然而,有了这个特殊的表达方式,它似乎在网站上工作但不在程序中,我不知道为什么

我正在尝试在以下字符串中匹配EU标签数据(例如:G C 71):

"Viking SnowTech II 165/70 R13 79T Winterreifen Auf Lager  G C 71  dBKundenbewertung (2.00) 29,50 € Details  In den Einkaufswagen"

正则表达式'#\ s \ w \ s \ w \ s \ d {1,}#'在regexr.com上运行正常但在我的程序中找不到匹配

$eulab = $row_html -> plaintext;
        if( preg_match('#\s\w\s\w\s\d{1,}#', $eulab)){
            $insert['eulab'] =  $matches[0];

        }else {
            echo "No Match";
        }

我已尝试过其他表达式,例如\ s {1} [AZ] {1} \ s {1} [AZ] {1} \ s {1} \ d {1,} \ s {1这也适用于regexr但在我的程序中找不到匹配项。这可能是编码问题吗?或只是我的PHP语法?没有错误被抛出。

1 个答案:

答案 0 :(得分:0)

我的问题是浏览器只显示一个空格,而实际上还有更多。我改变了表达式以纠正它并且它起作用了。

上面的@ chris85解决了问题

我的最终代码和表达是:

        $eulab = $row_html -> plaintext;

        if( preg_match('#\s\w\s+\w\s+\d+#', $eulab, $matches)){

            $insert['eulab'] =  str_replace(" ", "", $matches[0]);
        }