PHP:正则表达式匹配短语不包含特定单词 - php

我已经厌倦了寻找足够接近的例子,花时间寻求一些快速帮助!这是我的代码:

preg_match_all( '#<li.*?>.*?</li>#s', $card_html, $activity );

我想对其进行修改,以使<li.*?>排除单词Unplayed。 (单词出现在.*?之后和>之前。

编辑:

Want to catch: http://gamercard.xbox.com/en-US/Stallion83.card

            <li >

                <a href="http://live.xbox.com/en-us/GameCenter/Achievements?title=1464993792&amp;compareTo=Stallion83">
                   <img src="http://tiles.xbox.com/tiles/vD/fP/1Gdsb2JhbA9ECgUPGgIfVl9TL2ljb24vMC84MDAwIAAAAAAAAPvgN6M=.jpg" alt="F.E.A.R. 3" title="F.E.A.R. 3" />
                   <span class="Title">F.E.A.R. 3</span>
                   <span class="LastPlayed">6/24/2011</span>
                   <span class="EarnedGamerscore">415</span>
                   <span class="AvailableGamerscore">1000</span>
                   <span class="EarnedAchievements">23</span>
                   <span class="AvailableAchievements">50</span>
                   <span class="PercentageComplete">46%</span>
                </a>
            </li>

            <li class="Complete" >

                <a href="http://live.xbox.com/en-US/GameCenter/Achievements?title=1096157212&amp;compareTo=Im%20RedJ">
                   <img src="http://tiles.xbox.com/tiles/HI/L4/1Gdsb2JhbA9ECgQJGgYfVl4gL2ljb24vMC84MDAwIAAAAAAAAPvXggM=.jpg" alt="Call of Duty: WaW" title="Call of Duty: WaW" />
                   <span class="Title">Call of Duty: WaW</span>
                   <span class="LastPlayed">6/21/2011</span>
                   <span class="EarnedGamerscore">1500</span>
                   <span class="AvailableGamerscore">1500</span>
                   <span class="EarnedAchievements">66</span>
                   <span class="AvailableAchievements">66</span>
                   <span class="PercentageComplete">100%</span>
                </a>
            </li>

Dont want: http://gamercard.xbox.com/en-US/test.card

            <li class="Unplayed"></li>

            <li class="Unplayed"></li>

谢谢。

参考方案

试试这个。前瞻性确保<li>标记的其余部分不包含“未播放”。

preg_match_all( '#<li(?=(.(?!Unplayed))*?>).*?>(.(?!Unplayed))*?</li>#s', $card_html, $activity ); 

编辑:我无法从您的示例中看出来,但这听起来像是在

  • 的begin标签的内部和外部都可能出现未播放的情况。

    jQuery不起作用 - php

    我正在使用带有ajax的jquery。有时,给出错误$未定义。这是我的代码:<script language="javascript" type="text/javascript"> var base_path="<? echo $this->baseUrl().'/…

    Div单击与单选按钮相同吗? - php

    有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

    PHP-复选框组 - php

    我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

    添加php代码时未包含jQuery源文件 - php

    该代码运行良好,但是在我添加了以下php代码之后,一切都掉了。我添加了如下所示的php代码后,它为jquery-1.11.3.js指出“无法加载资源”。我在这里完全迷路了。不知道这是怎么了。<?php $currentMonthInInteger = date("n"); $currentYear = date("Y�…

    jQuery如果选中则启用动态输入文本 - php

    我正在使用PHP生成具有表格的表格,例如:<table class="table table-hover"> <thead> <tr> <th class="table-checkbox"> </th> <th> Description </…