正则表达式的帮助,应该非常简单

时间:2011-11-17 20:06:50

标签: php regex

$newHTML = str_replace("<tr><td>1-30 of 699 results.1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>", "", $newHTML);
            $newHTML = str_replace("<tr><td>31-60 of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>", "", $newHTML);
            $newHTML = str_replace("<tr><td>61-90 of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>","",$newHTML);
            $newHTML = str_replace("<tr><td>91-120 of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>","",$newHTML);
            $newHTML = str_replace("<tr><td>121-150 of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>","",$newHTML);

上面的代码是我没有正则表达式,因为我根本不懂正则表达式。

**<tr><td>**121-150 **of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>**

以上面为例,121-150是$newHTML中唯一不常数的数字。字符串的其余部分出现很多次。我怎么能对那些斑点进行通配?即

<tr><td>###-### of 699 results.First &Acirc;&middot; Prev &Acirc;&middot; 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>

数字标志是可能需要删除的数字。

1 个答案:

答案 0 :(得分:1)

将您的字符串集转换为PHP正则表达式非常简单。考虑因素是:

\d+代表一个或多个数字,因此您将使用它代替每个数字。

\|代表一条垂直线,因此您将使用它来代替每条垂直线。

因此,与给定字符串集匹配的正则表达式为:

<tr><td>\d+-\d+ of \d+ results.First &Acirc;&middot; Prev &Acirc;&middot; 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| 7 \| 8-15 &Acirc;&middot; Next &Acirc;&middot; Last</td></tr>