簡體   English   中英

PHP preg_match_all用於換行

[英]PHP preg_match_all for new line

我需要一個數據“ 2.5(0.5)”和“ 3.5”
我的模式是'/class="match_total_goal_div">.+</s'
但這是行不通的。
請幫忙。

<div class="match_total_goal_div">
2.5 (0.5) </div>
<div class="match_half_goal_div hide" ">
</div>
</td>
<td class="text-center corner_goal_range">
<div>
<span class="newlabel">N.A.</span>
</div>
.
.
.
<div class="match_total_goal_div">
3.5 </div>
.
.
.

首先,您需要在.+周圍添加方括號以捕獲所需的數據。 順便說一句,您需要一個問號: .+?

希望這可以幫到你

$str = '<div class="match_total_goal_div">
2.5 (0.5) </div>
<div class="match_total_goal_div">
3.5 </div>';

$pattern = '/class="match_total_goal_div">(.+?)</s';

preg_match_all($pattern, $str, $matches);

var_dump($matches);

檢查此代碼以實現您的目標

<?php
    $html = '<div class="match_total_goal_div">
    2.5 (0.5) </div>
    <div class="match_half_goal_div hide">
    </div>
    <td class="text-center corner_goal_range"></td>
    <div>
    <span class="newlabel">N.A.</span>
    </div>
    <div class="match_total_goal_div">
    3.5 </div>';
    $DOM = new DOMDocument();
    $DOM->loadHTML($html);
    $finder = new DomXPath($DOM);
    $classname = 'match_total_goal_div';
    $nodes = $finder->query("//*[contains(@class, '$classname')]");
    foreach ($nodes as $node) {
      echo $node->nodeValue."\n";
    }
?>

現場演示: http : //sandbox.onlinephpfunctions.com/code/b3e645ac56b9f7bf57d4519abd6b1be90ed87945

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM