Php 正则表达式以获取单元格内容是否包含链接
我返回一个HTML文件的内容,如下所示:Php 正则表达式以获取单元格内容是否包含链接,php,html,regex,Php,Html,Regex,我返回一个HTML文件的内容,如下所示: <irrelevant things> <tr id="myid"> <td>Content</td> </tr> <irrelevant things again> 内容 或: 是否可以只使用一个正则表达式为这两种情况获取“内容” 我试过了,但没有任何结果: preg_match('/<tr id="myid"><td&g
<irrelevant things>
<tr id="myid">
<td>Content</td>
</tr>
<irrelevant things again>
内容
或:
是否可以只使用一个正则表达式为这两种情况获取“内容”
我试过了,但没有任何结果:
preg_match('/<tr id="myid"><td>(<a href="[^\"]*">)?([^<]*)/', $html, $mycontent);
preg_match('/(Regex)不是最好的方法,因为你有一个id(“myid”),你可以用DOMDocument
轻松完成。例如:
$doc = new DOMDocument();
@$doc->loadHTML($yourstring);
$node = $doc->getElementById('myid');
echo trim($node->textContent);
Regex并不是实现这一点的最佳方法,因为您有一个id(“myid”),所以可以使用DOMDocument
轻松实现。示例:
$doc = new DOMDocument();
@$doc->loadHTML($yourstring);
$node = $doc->getElementById('myid');
echo trim($node->textContent);
这里有一种使用regex的方法:
<td>(?:<a.*?>)?([^<]+)
(?)
但是,使用DOM解析器(如使用正则表达式)会更容易:
<td>(?:<a.*?>)?([^<]+)
(?)
但是,像这样的DOM解析器会更容易处理,不确定需要解析多少html,但是您是否研究过html DOM解析器或类似的东西?(示例:)这是一种一次性的方法,我更喜欢处理它(如果可以的话)在1或2行中使用正则表达式,而不是使用libraryCool。在这种情况下,其他人可能比我更有帮助。不确定您需要解析多少html,但您是否研究过html DOM解析器或类似的东西?(示例:)这是一次性的,我更喜欢处理它(如果可以的话)在1或2行中使用正则表达式,而不是使用libraryCool cool。在这种情况下,其他人可能比我更有帮助。这正是我想做的。谢谢!这正是我想做的。谢谢!@Fiti在这种情况下,您可能希望选择此作为已接受的答案。@Duncan:既然Enessay answer也能做这项工作(以OP选择的方式),并包含对简单HTML DOM解析器的提及,我不认为有任何理由不接受他的答案。@Casimirithippolyte观点很好。此外,我误解了评论的顺序,认为Fiti最后评论了你的问题(这会使我相信这是首选解决方案)@Fiti在这种情况下,您可能希望选择此作为已接受的答案。@Duncan:因为Enessay的答案也可以做这项工作(按照OP选择的方式),并包含对简单HTML DOM解析器的提及,我不认为有任何理由不接受他的回答。@Casimirithippolyte观点很好。此外,我误读了评论顺序,认为Fiti最后对您的问题发表了评论(这使我相信这是首选解决方案)。