我希望"preg_match"一个看起来像/dp/B0039SD7S6/blah-blah 的链接,我当前的表达式看起来像......
$var = preg_match('/dp'/(.?*)'//', $output);
这不会输出"039SD7S6"。我假设是因为反斜杠干扰了分隔符。帮助将不胜感激,谢谢。
您的正则表达式有 3 个问题:
- 是的,斜杠,您必须对其进行转义或更改分隔符;
- 不贪婪的选择:
?
必须在.*
之后 -
preg_match
语法:结果必须在参数中,而不是在返回值中。
以这种方式更改:
preg_match('/dp'/(.*?)'//', $output, $var);
或者 - 正如我所喜欢的 - 以这种方式:
preg_match('{dp/(.*?)/}', $output, $var);
- 查看更多 关于 preg_match((
- 查看有关正则表达式语法的更多信息