[英]PHP preg_match_all html
我如何為 php 創建一個 preg_match_all 正則表達式模式來給我這個代碼?
<td class="class2"> </td>
<td class="class2" align="right"><span class="DarkText">I WANT THIS TEXT</span></td>
讓我在 span 類中獲取文本? 謝謝!
您可以使用:
preg_match_all("!<span[^>]+>(.*?)</span>!", $str, $matches);
然后您的文本將位於第一個捕獲組內(如rubular 所示)
順便說一下,請注意regex 不應該用於解析 HTML 。 使用 XML 解析器會更好,除非它非常非常簡單。
編寫可完美解析HTML的Regexes很難。 而是使用這樣的HTML解析器: http : //simplehtmldom.sourceforge.net/ 。 它易於使用,在這里我多次推薦它。
你也可以不使用!
在開始和結束時,並在T-Regx 中使用更簡單的代碼
$pattern = "<span[^>]+>(.*?)</span>"; // no delimiters :)
$string = '
<td class="class2"> </td>
<td class="class2" align="right"><span class="DarkText">I WANT THIS
TEXT</span></td>
';
然后只需使用match()->group()
:
$text = Pattern::of($pattern)->match($string)->group(1)->first();
$text // 'I WANT THIS TEXT'
在線查看: https : //regex101.com/r/nxTvS1/1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.