Home > Backend Development > PHP Tutorial > 求个正则表达式!!!!!!!

求个正则表达式!!!!!!!

WBOY
Release: 2016-06-23 14:19:02
Original
1107 people have browsed it

正则表达式

http://bbs.10jqka.com.cn/codelist.html
获取以上链接里面的部分内容
有深市、沪市、基金三种
我需要获取的是股票名称和股票代码

例如: 
  • 浦发银行 600000

  • 白云机场 600004


  • 获取结果
    浦发银行 600000
    白云机场 600004

    能直接获取成
    $a=array("600000"=>"浦发银行")
    这样的数组就更好了

    在此先谢谢各位大神了

    回复讨论(解决方案)

    preg_match_all('/<li><a[^>]+>(.+)<\/a><\/li>/isU',$s,$m);print_r($m[1]);
    Copy after login

    $str=<<<STR<li><a href="http://bbs.10jqka.com.cn/sh,600000,1" target="_blank" title="浦发银行">浦发银行 600000</a></li><li><a href="http://bbs.10jqka.com.cn/sh,600004,1" target="_blank" title="白云机场">白云机场 600004</a></li>STR; preg_match_all("/(\S+)\s+(\d+)/",preg_replace("/<\/?[^>]+?>/",'',$str),$out,PREG_SET_ORDER);  foreach($out as $a) list($s,$o[$i],$i)=$a;print_r($o);
    Copy after login

    <?php$url ="http://bbs.10jqka.com.cn/codelist.html";$str = file_get_contents($url);preg_match_all('/<li><a[^>]+>([^\d]+)(\d{6})<\/a><\/li>/isU',$str,$match);$a = array_combine(array_values($match[2]),array_values($match[1]));print_r($a);
    Copy after login
    Copy after login

    <?php$url ="http://bbs.10jqka.com.cn/codelist.html";$str = file_get_contents($url);preg_match_all('/<li><a[^>]+>([^\d]+)(\d{6})<\/a><\/li>/isU',$str,$match);$a = array_combine(array_values($match[2]),array_values($match[1]));print_r($a);
    Copy after login
    Copy after login



    谢谢,你的这个可以用的
    请问下,要怎么把生成的这个数组由gbk的转成utf8的?
    试了几种都转失败了

    $url ="http://bbs.10jqka.com.cn/codelist.html";
    $str = file_get_contents($url);
    $str = iconv('gbk', 'utf-8', $str);
    preg_match_all('/

  • ]+>([^\d]+)(\d{6})/isU',$str,$match);
    $a = array_combine(array_values($match[2]),array_values($match[1]));
    print_r($a);

    $url ="http://bbs.10jqka.com.cn/codelist.html";
    $str = file_get_contents($url);
    $str = iconv('gbk', 'utf-8', $str);
    preg_match_all('/

  • ]+>([^\d]+)(\d{6})/isU',$str,$match);
    $a = array_combine(array_values($match[2]),array_values($match[1]));
    print_r($a);
    谢谢,可以了

    $url ="http://bbs.10jqka.com.cn/codelist.html";
    $str = file_get_contents($url);
    $str = iconv('gbk', 'utf-8', $str);
    preg_match_all('/

  • ]+>([^\d]+)(\d{6})/isU',$str,$match);
    $a = array_combine(array_values($match[2]),array_values($match[1]));
    print_r($a);
    请问下,要怎么把$a数组里面下标前缀为0,3,6的保存下来,其余的给清除掉
    有什么简单的方法吗?

    也就是只要深市和沪市的数据,基金的不要

    preg_match_all('/

  • ]+>([^\d]+)(\d{6})/isU',$str,$match);
    改为
    preg_match_all('/
  • ]+>([^\d]+)([036]\d{5})/isU',$str,$match);

    preg_match_all('/

  • ]+>([^\d]+)(\d{6})/isU',$str,$match);
    改为
    preg_match_all('/
  • ]+>([^\d]+)([036]\d{5})/isU',$str,$match);
    谢谢大大
  • source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template