使用正则表达式获取某些锚文本的链接

时间:2012-03-17 20:54:47

标签: php regex anchor

我正在寻找一个preg_match_all来捕捉链接的href,该链接的锚文本为free file

这是我到目前为止<a.+href="(.*)".*>free file</a>,但它不起作用,因为我得到错误...

  

警告:preg_match()[function.preg-match]:未知的修饰符&#39; f&#39;在   第20行/home/aaran/public_html/tests/free_file.php

PS我想要匹配此网址:

<p> Grab this month's <a href="/item/html5-image-transitions-jquery-plugin/571431?WT.ac=free_file&amp;WT.seg_1=free_file&amp;WT.z_author=pixelentity">free
file</a> from the Canvas category! </p>

1 个答案:

答案 0 :(得分:3)

问题似乎是你没有在表达式周围放置分隔符。 PHP要求表达式被某种形式的有效分隔符包围。常见的是:

  • /,通常使用,除非有特殊原因不这样做
  • ~
  • #

因此,请确保您的preg_match以这样的方式开始:

preg_match('~<a.+href="(.*)".*>free file</a>~', /* ... */

请注意,我使用了代字号作为分隔符,因为表达式中有/