正則表達式——貪婪匹配和非貪婪匹配


一、貪婪匹配(匹配優先)和非貪婪匹配(忽略優先)的區別

  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> 投訴與建議:ydaili@foxmail.com
					</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個


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM