【问题标题】:get values using regular expression and preg_match_all使用正则表达式和 preg_match_all 获取值
【发布时间】:2012-11-09 07:09:53
【问题描述】:

我有字符串数据

$pages = "mangaName=&authorArtist=asdas123s&genres=sn&genres[23]=on&genres[29]=on&status=&chrome=&submit=+";

function get_h1($file){
    $h1tags = preg_match_all('/\[(\w*)\]/is',$file,$patterns);
    $res = array();
    array_push($res,$patterns[2]);
    array_push($res,count($patterns[2]));
    return $res;
}

我想获取流派[23]、流派[29]的编号

[0] => 23 [1] => 29

【问题讨论】:

  • php.net/parse_str 怎么样?
  • i want get number on genres[23] , genres[29]。我不太明白。你能改写一下吗?

标签: php regex preg-match-all


【解决方案1】:
$pages = "mangaName=&authorArtist=asdas123s&genres=sn&genres[23]=on&genres[29]=on&status=&chrome=&submit=+";

parse_str($pages, $parsed);

var_dump(array_keys($parsed['genres'])); // array(2) { [0]=> int(23) [1]=> int(29) }

【讨论】:

    【解决方案2】:

    zerkms 的答案是正确的,但如果你真的想使用正则表达式,请用这个来改变你的:

    preg_match_all('/\[(\w*?)\]/is',$file,$patterns);
     note the non-greedy __^
    

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多