2016-09-12 3 views
-2

私は下の行から数値シーケンスを取得しようとしています。文字列の数値シーケンスを取得するための小さな修正

<div data-cid="8558641" class="clsfd_list_row_group"> 

私はこれは私が間違っているのは何運

preg_match_all('!<div data-cid="\/(.*?)\/" class="clsfd_list_row_group">!is', $str, $urls); 

withousやっていますか?

+1

xpathを使用したい場合は、XPath '// div [@ class =" clsfd_list_row_group "]/@ data-cid' –

+0

@WiktorStribiżewを使用してください。 – EnexoOnoma

+1

なぜ、' \/'あなたの入力文字列にスラッシュ? https://regex101.com/r/jV5kL9/1 –

答えて

0

で試してみてください。

<div data-cid="(.*?)" class="clsfd_list_row_group"> 

"\/(.*?)\/"はより"(content)"のようなものを探しているが、テレはあなたの例の入力では、中括弧ではありません。

0

あなたは簡単にxpathクエリでそれを行うことができます:

<?php 

$data = <<<DATA 
<div> 
    <div data-cid="8558641" class="clsfd_list_row_group"> 
    <div data-cid="12345" class="clsfd_list_row_group"> 
    <div data-cid="123" class="clsfd_list_row_group"> 
</div> 
DATA; 


$dom = new DOMDocument(); 
$dom->loadHTML($data); 

$xpath = new DOMXPath($dom); 

$cids = $xpath->query("//div[@class='clsfd_list_row_group']/@data-cid"); 
foreach ($cids as $cid) { 
    echo $cid->nodeValue . "\n"; 
} 
?> 

これは855864112345123a demo on ideone.comを参照して出力します。

関連する問題