preg_match正则表达式,请在链接中查找文本


preg_match regex, find text within link

我希望"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((
  • 查看有关正则表达式语法的更多信息