Php preg_match_all接受字符串存在问题

Php preg_match_all接受字符串存在问题,php,preg-match-all,Php,Preg Match All,我无法让preg_match_all获取带有类和属性的跨度 这就是我要获取/捕获的内容: <span class="class-name" data-is-compact="false">Content</span> 它起作用了。我做错了什么?你没有为此使用好的工具。使用DOM: $dom = new DOMDocument(); @$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sree

我无法让preg_match_all获取带有类和属性的跨度

这就是我要获取/捕获的内容:

<span class="class-name" data-is-compact="false">Content</span>

它起作用了。我做错了什么?

你没有为此使用好的工具。使用DOM:

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sreenname . '/');
$xpath = new DOMXPath($dom);
$query = '//span[@class="class-name" and @data-is-compact="false"]/text()';
$nodes = $xpath->query($query);

foreach($nodes as $node) {
    echo $node->nodeValue . "\n";
}

你没有使用好的工具。使用DOM:

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sreenname . '/');
$xpath = new DOMXPath($dom);
$query = '//span[@class="class-name" and @data-is-compact="false"]/text()';
$nodes = $xpath->query($query);

foreach($nodes as $node) {
    echo $node->nodeValue . "\n";
}

你没有使用好的工具。使用DOM:

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sreenname . '/');
$xpath = new DOMXPath($dom);
$query = '//span[@class="class-name" and @data-is-compact="false"]/text()';
$nodes = $xpath->query($query);

foreach($nodes as $node) {
    echo $node->nodeValue . "\n";
}

你没有使用好的工具。使用DOM:

$dom = new DOMDocument();
@$dom->loadHTMLFile('https://twitter.com/' . $this->twitter_sreenname . '/');
$xpath = new DOMXPath($dom);
$query = '//span[@class="class-name" and @data-is-compact="false"]/text()';
$nodes = $xpath->query($query);

foreach($nodes as $node) {
    echo $node->nodeValue . "\n";
}


请尝试包含您试图匹配的实际字符串,以便我们可以看到发生了什么。抱歉,我键入了一个错误,我指的是一个span而不是div。该字符串就是span。在这方面我还是个新手,所以我可能使用了错误的表达式-但这是preg\u match\u all无法读取/接受的范围我指的是
$response
的实际值。没有这一点,就无法判断出哪里出了问题。嗨@StevenDon,我刚刚添加了响应。虽然您应该使用下面的DOM答案,但是您的正则表达式没有任何问题,尽管其中的所有转义都不是严格必要的。假设
类名
实际上是
ProfileNav值
,那么在twitter页面上尝试它确实会给我答案。无论如何,使用DOM来实现这一点。正则表达式在处理HTML内容方面是出了名的糟糕(它允许嵌套和属性可以重新排序,仅列出两个陷阱)。请尝试包含您试图匹配的实际字符串,以便我们可以看到发生了什么。抱歉,我犯了一个键入错误,我的意思是一个span而不是div。字符串就是span。在这方面我还是个新手,所以我可能使用了错误的表达式-但这是preg\u match\u all无法读取/接受的范围我指的是
$response
的实际值。没有这一点,就无法判断出哪里出了问题。嗨@StevenDon,我刚刚添加了响应。虽然您应该使用下面的DOM答案,但是您的正则表达式没有任何问题,尽管其中的所有转义都不是严格必要的。假设
类名
实际上是
ProfileNav值
,那么在twitter页面上尝试它确实会给我答案。无论如何,使用DOM来实现这一点。正则表达式在处理HTML内容方面是出了名的糟糕(它允许嵌套和属性可以重新排序,仅列出两个陷阱)。请尝试包含您试图匹配的实际字符串,以便我们可以看到发生了什么。抱歉,我犯了一个键入错误,我的意思是一个span而不是div。字符串就是span。在这方面我还是个新手,所以我可能使用了错误的表达式-但这是preg\u match\u all无法读取/接受的范围我指的是
$response
的实际值。没有这一点,就无法判断出哪里出了问题。嗨@StevenDon,我刚刚添加了响应。虽然您应该使用下面的DOM答案,但是您的正则表达式没有任何问题,尽管其中的所有转义都不是严格必要的。假设
类名
实际上是
ProfileNav值
,那么在twitter页面上尝试它确实会给我答案。无论如何,使用DOM来实现这一点。正则表达式在处理HTML内容方面是出了名的糟糕(它允许嵌套和属性可以重新排序,仅列出两个陷阱)。请尝试包含您试图匹配的实际字符串,以便我们可以看到发生了什么。抱歉,我犯了一个键入错误,我的意思是一个span而不是div。字符串就是span。在这方面我还是个新手,所以我可能使用了错误的表达式-但这是preg\u match\u all无法读取/接受的范围我指的是
$response
的实际值。没有这一点,就无法判断出哪里出了问题。嗨@StevenDon,我刚刚添加了响应。虽然您应该使用下面的DOM答案,但是您的正则表达式没有任何问题,尽管其中的所有转义都不是严格必要的。假设
类名
实际上是
ProfileNav值
,那么在twitter页面上尝试它确实会给我答案。无论如何,使用DOM来实现这一点。正则表达式在处理HTML内容方面是出了名的糟糕(这允许嵌套和属性可以重新排序,仅列出两个陷阱).+1祝贺您回答得比第一个提出正则表达式的人快。+1祝贺您回答得比第一个提出正则表达式的人快。+1祝贺您回答得比第一个提出正则表达式的人快。+1祝贺您回答得比第一个提出正则表达式的人快表示正则表达式。