我想查找一段字符,是用<或《两种符号包起来的,也就是说类似
<abc>或《abc》,问题是怎么才能知道前边是用<开头的,后边就必须也是>结尾?
《abc>这种结果是不行的。第二种就是我想找链接地址,超链接或图片的src都需要,要求是链接地址必须是以/开头的,也就是要找
href="/abc.html"或src="/abc.jpg"
另外就是
http="abc/abc.html"这种的,不是以abc文件夹开头的链接怎么写正则?请各位赐教,在此感谢各位了!

解决方案 »

  1.   

    问题一:
    preg_match_all('/\<\s+\>/is', $string, $match);
    print_r($match);
    preg_match_all('/《\s+》/is', $string1, $match1);
    print_r($match1);问题二:
    preg_match_all('/(?:href|src)="\/\s+\.\s+"/is', $string, $match);
    print_r($match);最后一个问题没看明白
      

  2.   

    问题一,能不能用一个正则表达式来搞定?最后一个问题目的意思是有下面链接
    href="cd/test.html"
    src="ed/test.html"
    src="abc/test.html"
    href="bc/test.html"用什么方法能把
    href="cd/test.html"
    src="ed/test.html"
    这两个链接找到,而不包括后边的两个,当然,前两个链接中cd/ ed/也有可能是别的字母,总之不是abc或bc
      

  3.   


    //问题1:未经测试。
    preg_match_all('/(<.*>)|(《.*》)/i',$string,$matches);
    var_dump($matches);
    //问题2://未经测试
    preg_match_all('href="(\/|[^bc|abc].*)"/i',$string,$matches);
      

  4.   

    楼上,
    第一题,如果我在<>里边的内容要求更多些的话,按照你这种方式是不是要很长啊,或者说,出现更多的情况,如<(.*)>|《(.*)》|'(.*)'|"(.*)"这样,那一个正则是不是要写很长啊