Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式以获取单元格内容是否包含链接_Php_Html_Regex - Fatal编程技术网

Php 正则表达式以获取单元格内容是否包含链接

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

我返回一个HTML文件的内容,如下所示:

<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最后对您的问题发表了评论(这使我相信这是首选解决方案)。