Home  >  Article  >  Backend Development  >  正则匹配有关问题 求指教

正则匹配有关问题 求指教

WBOY
WBOYOriginal
2016-06-13 13:28:041030browse

正则匹配问题 求指教
获取一个A标签的Href属性

被匹配的字符

连接1
连接2
连接3


可以没有引号 可以有双引号 单引号 但是不允许一侧有引号另一侧没有引号

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->preg_match('/<a>/i', $str, $matches)

</a>



这样怎么不行呢

------解决方案--------------------
PHP code
$str=连接1
<a class="a" href="http://www.baidu.com/" id="a2">连接2</a>
<a class="a" href="http://www.baidu.com/" id="a3">连接3</a>
<a class="a" href="http://www.baidu.com/%20id=" a3>连接3</a>
STR;

preg_match_all('/<a>]+href=(["\']?)([^\s"\']+)\1[^>]*>/',$str,$matches);
print_r($matches[2]);
<br><font color="#e78608">------解决方案--------------------</font><br>
<dl class="code">PHP code<pre class="brush:php;toolbar:false">
$str=连接1
连接2
连接3 html; preg_match_all('/href=(["\'])?([^\s"\']+)/is', $str, $matches) ; print_r($matches);
------解决方案--------------------
PHP code
[User:root Time:14:14:52 Path:/home/liangdong/php]$ php preg.php 
Array
(
    [0] => Array
        (
            [0] => <div class="a" href="http://www.baidu.com/"> <div class="a" href="http://www.baidu.com/"> <div class="a" href="http://www.baidu.com/"> Array
        (
            [0] => "
            [1] => '
            [2] => 
        )

    [2] => Array
        (
            [0] => http://www.baidu.com/
            [1] => http://www.baidu.com/
            [2] => http://www.baidu.com/
        )

)
[User:root Time:14:14:53 Path:/home/liangdong/php]$ cat preg.php 
<?php $str = <<<EOF
<div class="a" href="http://www.baidu.com/" id="a1">连接1
<div class="a" href="http://www.baidu.com/" id="a2">连接2
<div class="a" href="http://www.baidu.com/" id="a3">连接3
EOF;
preg_match_all('/<div class="a" href="(%5B%22%5C'%5D?)(%5B%5E%5Cs%5C'%22%5D*)%5C1/is'," print_r> <div class="clear">
                 
              
              
        
            </div>
</div>
</div>
</div>
</div>
</div>
</div>
Statement:
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