> 백엔드 개발 > PHP 튜토리얼 > 求个正则表达式!!!!!!!

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

WBOY
풀어 주다: 2016-06-23 14:19:02
원래의
1105명이 탐색했습니다.

正则表达式

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]);
    로그인 후 복사

    $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);
    로그인 후 복사

    <?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);
    로그인 후 복사
    로그인 후 복사

    <?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);
    로그인 후 복사
    로그인 후 복사



    谢谢,你的这个可以用的
    请问下,要怎么把生成的这个数组由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);
    谢谢大大
  • 원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    최신 이슈
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿