0

我怎样才能为 php 创建一个 preg_match_all 正则表达式模式来给我这个代码?

<td class="class2">&nbsp;</td>
<td class="class2" align="right"><span class="DarkText">I WANT THIS TEXT</span></td>

让我得到 span 类中的文本?谢谢!

4

2 回答 2

7

您可以使用:

preg_match_all("!<span[^>]+>(.*?)</span>!", $str, $matches);

然后您的文本将在第一个捕获组内(如rubular 所示

顺便说一句,请注意不应该使用正则表达式来解析 HTML。使用 XML 解析器会更好,除非它非常非常简单。

于 2010-09-16T00:08:02.003 回答
0

您也可以不在开始和结束时使用,而是在T-Regx!中使用更简单的代码

$pattern = "<span[^>]+>(.*?)</span>"; // no delimiters :)

$string = '
<td class="class2">&nbsp;</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

于 2019-01-15T16:27:48.607 回答