1

私は正規表現が初めてです。

私はこのテキストを持っています:

$text =
'<ul style="list-style:none;">
  <li>
      <a href="files/docs/qwe.xls" target="_blank">Link1</a>
  </li>
  <li>
      <a href="files/docs/ere.xls" target="_blank">Link2</a>
  </li>
  <li>
      <a href="files/docs/123.xls" target="_blank">Link3</a>
  </li>
</ul>';

正規表現を使用して、この配列を取得したい:

$filePath[0] = "files/docs/qwe.xls";
$fileName[0] = "Link1";
$filePath[1] = "files/docs/ere.xls";
$fileName[1] = "Link2";
$filePath[2] = "files/docs/123.xls";
$fileName[2] = "Link3";

どうすればいいですか?

ありがとう。

4

3 に答える 3

2

簡単な正規表現が必要です

このコードを確認してください

 $match = array();
 preg_match_all('#<a href="(.*?)">(.*?)</a>#sm', $text, $match);
 print_r($match)

(.*?)- 貪欲でないすべてを意味します

于 2013-10-30T10:12:34.203 に答える
0

ルックアラウンドを使用すると、探している文字列の前後に何かがあるかどうかを確認するのに役立ちます。仕組みは次のとおりです。

/(?<=href=")[^"]*(?=")/

これが意味することは次のとおりです。

/先頭
(?<=href=")href="
[^"]*任意の数の非"文字
(?=")が続き、その後に"
/末尾が続きます

于 2013-10-30T10:11:05.527 に答える