正则表达式——贪婪匹配和非贪婪匹配

一、贪婪匹配(匹配优先)和非贪婪匹配(忽略优先)的区别

  1. 默认是贪婪匹配,意思是尽可能多的取匹配符合条件的数据
  2. 带有?的是非贪婪匹配,意思是尽可能少的匹配符合条件的数据

二、实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>免费代理ip - 齐云代理 - 专业http代理ip供应平台每天更新大量免费代理IP资源</title>
		<meta name="keywords" content="齐云代理,代理ip,高效ip提取,最新http代理,私密代理ip,爬虫代理ip,动态代理ip,长效代理ip,国内外代理ip,代理api接口">
    	<meta name="description" content="齐云代理是一个专业的http代理ip供应网站,拥有大量的高品质ip资源其中包括免费代理、私密代理、开放代理、长效代理等多种类型的http和https代理ip;并且我们一直在探索更好的ip为用户提供旗舰级的代理服务,努力为客户提供更好的大数据基础服务!"/>
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
		<!-- Stylesheets -->
		<link rel="stylesheet" href="/css/font-awesome.min.css">
		<link rel="stylesheet" href="/css/main.min.css">
		<link rel="stylesheet" href="/css/loge.css">
	</head>
	<body class="footer-dark">
		<!-- Header -->
		<header id="header" class="header-dynamic header-shadow-scroll">
			<div class="container">
				<a class="logo" href="/">
					<img src="/img/logo.png" alt="">
				</a>
				<nav>
					<ul class="nav-primary">
						<li>
							<a href="/">首页</a>
						</li>
						
						<li>
							<a href="/free">免费代理</a>
						</li>
						
						<li>
							<a href="/buy">购买代理</a>
						</li>
						
						<li>
							<a href="/secret">私密代理</a>
						</li>
						
						<li>
							<a href="/putong">开放代理</a>
						</li>
						<li>
							<a>API文档</a>
							<ul style="min-width: 48px;">
								<li>
									<a href="/doc/putong/">开放代理</a>
								</li>
								<li>
									<a href="/doc/secret/">私密代理</a>
								</li>
							</ul>
						</li>

						<li>
							<a class="button button-secondary" href="/user/">
								<i class="fa fa-lock icon-left"></i>用户中心
							</a>
						</li>
					</ul>
					<ul class="nav-secondary">
						<li>
							<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=3338531519&site=qq&menu=yes"><i class="fa fa-comments icon-left"></i>咨询客服</a>
						</li>
					</ul>
				</nav>
			</div>
		</header>
		<section id="content">
			<section class="content-row content-row-gray">
			    <div align="center" style="padding:30px;">
				</div>
				<div class="container">
					<header class="content-header">
						<p>
							注:免费代理每小时少量更新,不代表本站收费代理质量。
						</p>
					</header>
				    <table class="table table-bordered table-striped">
          <thead>
              <tr>
                <th>IP</th>
                <th>PORT</th>
                <th>匿名度</th>
                <th>类型</th>
                <th>位置</th>
                <th>响应速度</th>
                <th>最后验证时间</th>
              </tr>
            </thead>
            <tbody>
                                                <tr>
                    <td data-title="IP">182.35.84.72</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTP</td>
                    <td data-title="位置">中国 山东 泰安</td>
                    <td data-title="响应速度">9.547583秒</td>
                    <td data-title="最后验证时间">2020-03-30 08:56:40</td>
                </tr>
                                <tr>
                    <td data-title="IP">118.212.106.30</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 江西 新余</td>
                    <td data-title="响应速度">0.462855秒</td>
                    <td data-title="最后验证时间">2020-03-29 08:51:05</td>
                </tr>
                                <tr>
                    <td data-title="IP">1.198.72.165</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 河南 济源</td>
                    <td data-title="响应速度">0.376526秒</td>
                    <td data-title="最后验证时间">2020-03-30 07:14:08</td>
                </tr>
                                <tr>
                    <td data-title="IP">36.248.133.234</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 福建 宁德</td>
                    <td data-title="响应速度">3.91881秒</td>
                    <td data-title="最后验证时间">2020-03-30 14:11:27</td>
                </tr>
                                <tr>
                    <td data-title="IP">118.212.106.200</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 江西 新余</td>
                    <td data-title="响应速度">46.194655秒</td>
                    <td data-title="最后验证时间">2020-03-30 08:34:54</td>
                </tr>
                                <tr>
                    <td data-title="IP">110.243.20.254</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 河北 唐山</td>
                    <td data-title="响应速度">31.395753秒</td>
                    <td data-title="最后验证时间">2020-03-29 09:55:12</td>
                </tr>
                                <tr>
                    <td data-title="IP">223.100.166.3</td>
                    <td data-title="PORT">36945</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 辽宁 大连</td>
                    <td data-title="响应速度">34.16212秒</td>
                    <td data-title="最后验证时间">2020-03-30 18:55:47</td>
                </tr>
                                <tr>
                    <td data-title="IP">101.37.118.54</td>
                    <td data-title="PORT">8888</td>
                    <td data-title="匿名度">匿名</td>
                    <td data-title="类型">HTTP</td>
                    <td data-title="位置">中国 浙江 杭州</td>
                    <td data-title="响应速度">0.052876秒</td>
                    <td data-title="最后验证时间">2020-03-30 19:17:27</td>
                </tr>
                                <tr>
                    <td data-title="IP">223.245.47.13</td>
                    <td data-title="PORT">65309</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 安徽 蚌埠</td>
                    <td data-title="响应速度">6.462303秒</td>
                    <td data-title="最后验证时间">2020-03-30 19:00:23</td>
                </tr>
                                <tr>
                    <td data-title="IP">110.243.18.64</td>
                    <td data-title="PORT">9999</td>
                    <td data-title="匿名度">高匿</td>
                    <td data-title="类型">HTTPS</td>
                    <td data-title="位置">中国 河北 唐山</td>
                    <td data-title="响应速度">0.340703秒</td>
                    <td data-title="最后验证时间">2020-03-29 09:46:24</td>
                </tr>
                                
            </tbody>
        </table>
        <br>
                    <nav aria-label="Page navigation" align="center">
                        <ul class="pagination">
                            <li><a href="?action=china&page=1" aria-label="Previous"><span aria-hidden="true">«</span></a></li>
                                                        <li><a href="?action=china&page=2">2</a></li>
                                                        <li><a href="?action=china&page=3">3</a></li>
                                                        <li><a href="?action=china&page=4">4</a></li>
                                                        <li><a href="?action=china&page=5">5</a></li>
                                                        <li><a href="?action=china&page=6">6</a></li>
                                                        <li><a href="?action=china&page=7">7</a></li>
                                                        <li><a href="?action=china&page=3" aria-label="Next"><span aria-hidden="true">»</span></a></li>
                        </ul>
                    </nav>
				</div>
			</section>
			<!-- Content Row -->
					</section>
		<!-- Footer -->
		<footer id="footer">
			<section class="footer-primary">
				<div class="container">
					<div class="column-row">
						<div class="column-33">
							<h5>
								本站声明
							</h5>
							<p>
								平台发布的免费代理是第三方代理服务器,收集自互联网,并非我们所有,由用户使用免费代理带来的法律责任与本平台无关。 若免费代理侵犯了您的权益,请及时告知,我们将在第一时间删除。<br>
							</p>
						</div>
						<div class="column-66">
							<div class="column-row align-right-top">
								<div class="column-25">
									<h5>
										联系
									</h5>
									<ul class="list-style-icon">
										<li>
											<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=3338531519&site=qq&menu=yes"><i class="fa fa-qq"></i>QQ客服</a>
										</li>
									</ul>
								</div>
								<div class="column-25">
									<h5>
										产品
									</h5>
									<ul>
										<li>
											<a href="/secret">私密代理</a>
										</li>
										<li>
											<a href="/putong">开放代理</a>
										</li>
										<li>
											<a href="/#">长效代理</a>
										</li>
									</ul>
								</div>
							</div>
						</div>
					</div>
				</div>
			</section>
			<section class="footer-secondary">
				<div class="container">
					<p>
						Copyright 2018-2020 &copy; 亳州市峰顶网络科技有限公司  <a href="http://www.beian.miit.gov.cn/" target="_blank" style="color: #667791;">皖ICP备20001423号</a> 投诉与建议:[email protected]
					</p>
				</div>
			</section>
		</footer>
		<!-- Scripts -->
		<script>
            var contextPath = '';
        </script>
<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?96901db7af1741c2fd2d52f310d78eaa";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
		<script src="/js/jquery.min.js"></script>
		<script src="/js/headroom.min.js"></script>
		<script src="/js/main.min.js"></script>
	</body>
</html>

三、实例中的非贪婪匹配和贪婪匹配

\s----空白字符(空格、换行、制表)
\S----匹配非空白字符
[\s\S]----匹配任意一个字符,也叫全字符
*:[0,+∞]单个字符
+:[1,+∞]单个字符

1. 贪婪匹配

[\s\S]*----贪婪匹配,因为没有?,表示尽可能多的匹配到所有符合前面【\s\S】的字符,最大为正无穷

[\s\S]+----贪婪匹配,因为没有?,表示尽可能多的匹配到所有符合前面【\s\S】的字符,最大为正无穷

2. 非贪婪匹配

[\s\S]*?----非贪婪匹配,表示尽可能少的匹配到符合前面条件【\s\S】的字符,,最小为0个满足条件的字符,因为*最少为0个

[\s\S]+?----非贪婪匹配,表示尽可能少的匹配到符合前面条件【\s\S】的字符,,最小为1个满足条件的字符,因为+最少为1个

猜你喜欢

转载自www.cnblogs.com/mousecode/p/12602020.html
今日推荐