我如何使用正则表达式? (PHP)

时间:2015-08-29 11:36:08

标签: php regex preg-match-all

我需要从页面中删除数据,文件中的源代码如下:

                <td class="pl-15">
                                            <a class="job-item" id="job-92837" href="http://www.jobs.com/job/looking-for-c-and-net-rockstar-developers/92837" >
                        Looking Rockstar Developers!                        </a>


                </td>
                <td >

                    <a href="http://www.jobs.com/employer/spidron/7388" class="joblist">    

                        Spidron                                             </a>

我使用的模式就是这样:

        $pattern = '/<a class="job-item" id="(.*?)" href="(.*?)">(.*?)\/a>/';

        preg_match_all($pattern, $content, $matches);

这种模式的问题在于我在第三个数组中获取数据,如:

                Looking for Rockstar Developers!                        </a>


                </td>
                <td >

                    <a href="http://www.jobs.com/employer/spidron/7388" class="joblist">    

                        Spidron     

我如何获得&#34;寻找Rockstar开发者!&#34;在一个数组中, 以下链接&#34; http://www.jobs.com/employer/spidron/7388&#34;在另一个数组中,&#34; Spidron&#34;在另一个。

只是初学者使用正则表达式,非常感谢帮助。 :)

1 个答案:

答案 0 :(得分:0)

这里有两个问题:

  1. 您的数据跨越多行。因此,您应该在正则表达式的末尾添加“s”。
  2. 结束标记前有空格。你应该考虑到这一点。
  3. 请改用此正则表达式:

    $pattern = '/\<a class="job-item" id="(.*?)" href="(.*?)".*>(.*?)<\/a>/s';