我一直在使用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语法?没有错误被抛出。
答案 0 :(得分:0)
我的问题是浏览器只显示一个空格,而实际上还有更多。我改变了表达式以纠正它并且它起作用了。
上面的@ chris85解决了问题
我的最终代码和表达是:
$eulab = $row_html -> plaintext;
if( preg_match('#\s\w\s+\w\s+\d+#', $eulab, $matches)){
$insert['eulab'] = str_replace(" ", "", $matches[0]);
}