0

preg_matchHTMLソースを実行するときに正規表現に改行を含める方法は?

php

preg_match('/Корица:<\/b><\/td><td>(.*)<\/td>/im', $table[0], $korica);

html(これも にあるものです$table[0]):

<tr>

            <td><b>Година на издаване:</b></td>

            <td itemprop="datePublished">2009</td>

          </tr>

          <tr>

            <td><b>Корица:</b></td>

            <td>Мека</td>

          </tr>

          <tr>

            <td><b>Език:</b></td>

            <td itemprop="inLanguage">Български</td>

          </tr>





                      <tr>

            <td><b>Средна оценка:</b></td>

            <td>                  Продуктът няма оценка                  </td>

          </tr>

私が使用する場合preg_match_all、Корица の後にすべての html を取得します。しかし、私が欲しいのは、このMekaだけを html から取得することです。

4

2 に答える 2

1

「Meka」が常に英数字の場合、次のようなものが機能する可能性があります。

    preg_match('/Корица:<\/b><\/td><td>([a-zA-Z0-9]*)<\/td>/im', $table[0], $korica);

[a-zA-Z0-9]* は英数字のみに一致する必要があります。スペースも考慮する必要があるかもしれません。その場合は [a-zA-Z0-9 ]* を使用する必要があります (終了前のスペースに注意してください ])

于 2013-07-02T14:53:48.187 に答える
1

(.*)正規表現の一部を貪欲(.*?)でない、またはさらに良い -に変更します。([^<]*)これは、そうでないすべてのものに一致します<

于 2013-07-02T14:47:10.243 に答える