有一字符串为如下表示:
<span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">1</span><span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">2</span><span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">3</span>请问,怎么写正则表达式把红色的这三个数字提取出来,谢谢。
<span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">1</span><span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">2</span><span style="color: rgb(102, 102, 102); position: absolute; right: 3px; top: 0pt;">3</span>请问,怎么写正则表达式把红色的这三个数字提取出来,谢谢。
/<span[^>]+>(.*?)<\/span>/im利用
preg_match_all(正则表达式,被查找的字符串变量,存储的结果数组变量)
那么红色部分形成的数组就是你要的结果对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推
preg_match_all("|<span style=\"color: rgb\(([0-9]{3}, [0-9]{3}, [0-9]{3})\)[^>]+>(.*)</[^>]+>|U",$str,$matches);
print_r($matches);
}
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 102, 102, 102 [1] => 102, 102, 102 [2] => 102, 102, 102 ) [2] => Array ( [0] => 1 [1] => 2 [2] => 3 ) )