我怎样才能为 php 创建一个 preg_match_all 正则表达式模式来给我这个代码?
<td class="class2"> </td>
<td class="class2" align="right"><span class="DarkText">I WANT THIS TEXT</span></td>
让我得到 span 类中的文本?谢谢!
我怎样才能为 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 所示)
顺便说一句,请注意不应该使用正则表达式来解析 HTML。使用 XML 解析器会更好,除非它非常非常简单。
您也可以不在开始和结束时使用,而是在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'