日期:2014-05-17  浏览次数:20433 次

php正则表达式匹配疑问。
PHP code
$data = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>aaa/r/naaaaaaaaaaaa"; 

preg_match_all('/<meta[^>]*charset=([a-zA-Z0-9]*[\-]*[0-9]*)/', $data, $meta);
var_dump($meta);

为什么打印出来是:
array
  0 => 
  array
  0 => string '<meta http-equiv='Content-Type' content='text/html; charset=utf-8' (length=64)
  1 => 
  array
  0 => string 'utf-8' (length=4)

第二个匹配到utf-8是怎么匹配的?
不是只能匹配第一个吗?

------解决方案--------------------
探讨
PHP code
$data = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>aaa/r/naaaaaaaaaaaa";

preg_match_all('/<meta[^>]*charset=([a-zA-Z0-9]*[\-]*[0-9]*)/', $data, $meta);
var_dump($……