国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

?*或+正則表達式使用詳解

開發 后端
?*或+正則表達式使用詳解主要向你介紹了在實現重復的時候,我們使用?*或+的情況,那么希望對于這樣具體的?*或+正則表達式使用詳解對你有所幫助。

?*或+正則表達式使用詳解是向你介紹我們使用?*或+實現“重復”的操作,那么具體的有哪些方面呢?我們下面通過實例的講解形式向你逐一介紹,希望對你有所幫助。

?*或+正則表達式使用詳解之相關概念:

?:告訴引擎匹配前導字符0次或一次。事實上是表示前導字符是可選的。

+:告訴引擎匹配前導字符1次或多次

*:告訴引擎匹配前導字符0次或多次

<[A-Za-z][A-Za-z0-9]*>匹配沒有屬性的HTML標簽,“<”以及“>”是文字符號。第一個字符集匹配一個字母,第二個字符集匹配一個字母或數字。

我們似乎也可以用<[A-Za-z0-9]+>。但是它會匹配<1>。但是這個正則表達式在你知道你要搜索的字符串不包含類似的無效標簽時還是足夠有效的。

◆?*或+正則表達式使用詳解之限制性重復

許多現代的正則表達式實現,都允許你定義對一個字符重復多少次。詞法是:{min,max}。min和max都是非負整數。如果逗號有而max被忽略了,則max沒有限制。如果逗號和max都被忽略了,則重復min次。

因此{0,}和*一樣,{1,}和+ 的作用一樣。

你可以用<<\b[1-9][0-9]{3}\b>>匹配1000~9999之間的數字(“\b”表示單詞邊界)。<<\b[1-9][0-9]{2,4}\b>>匹配一個在100~99999之間的數字。

◆?*或+正則表達式使用詳解之注意貪婪性

假設你想用一個正則表達式匹配一個HTML標簽。你知道輸入將會是一個有效的HTML文件,因此正則表達式不需要排除那些無效的標簽。所以如果是在兩個尖括號之間的內容,就應該是一個HTML標簽。

許多正則表達式的新手會首先想到用正則表達式<< <.+> >>,他們會很驚訝的發現,對于測試字符串,“This is a <EM>first</EM> test”,你可能期望會返回<EM>,然后繼續進行匹配的時候,返回</EM>。

但事實是不會。正則表達式將會匹配“<EM>first</EM>”。很顯然這不是我們想要的結果。原因在于“+”是貪婪的。也就是說,“+”會導致正則表達式引擎試圖盡可能的重復前導字符。只有當這種重復會引起整個正則表達式匹配失敗的情況下,引擎會進行回溯。也就是說,它會放棄最后一次的“重復”,然后處理正則表達式余下的部分。和“+”類似,“?*”的重復也是貪婪的。

◆?*或+正則表達式使用詳解之深入正則表達式引擎內部

讓我們來看看正則引擎如何匹配前面的例子。第一個記號是“<”,這是一個文字符號。第二個符號是“.”,匹配了字符“E”,然后“+”一直可以匹配其余的字符,直到一行的結束。然后到了換行符,匹配失敗(“.”不匹配換行符)。于是引擎開始對下一個正則表達式符號進行匹配。也即試圖匹配“>”。到目前為止,“<.+”已經匹配了“<EM>first</EM> test”。引擎會試圖將“>”與換行符進行匹配,結果失敗了。于是引擎進行回溯。結果是現在“<.+”匹配“<EM>first</EM> tes”。于是引擎將“>”與“t”進行匹配。顯然還是會失敗。這個過程繼續,直到“<.+”匹配“<EM>first</EM”,“>”與“>”匹配。于是引擎找到了一個匹配“<EM>first</EM>”。記住,正則導向的引擎是“急切的”,所以它會急著報告它找到的第一個匹配。而不是繼續回溯,即使可能會有更好的匹配,例如“<EM>”。所以我們可以看到,由于“+”的貪婪性,使得正則表達式引擎返回了一個最左邊的最長的匹配。

◆?*或+正則表達式使用詳解之用懶惰性取代貪婪性

一個用于修正以上問題的可能方案是用“+”的惰性代替貪婪性。你可以在“+”后面緊跟一個問號“?”來達到這一點。“*”,“{}”和“?”表示的重復也可以用這個方案。因此在上面的例子中我們可以使用“<.+?>”。讓我們再來看看正則表達式引擎的處理過程。

再一次,正則表達式記號“<”會匹配字符串的第一個“<”。下一個正則記號是“.”。這次是一個懶惰的“+”來重復上一個字符。這告訴正則引擎,盡可能少的重復上一個字符。因此引擎匹配“.”和字符“E”,然后用“>”匹配“M”,結果失敗了。引擎會進行回溯,和上一個例子不同,因為是惰性重復,所以引擎是擴展惰性重復而不是減少,于是“<.+”現在被擴展為“<EM”。引擎繼續匹配下一個記號“>”。這次得到了一個成功匹配。引擎于是報告“<EM>”是一個成功的匹配。整個過程大致如此。

◆?*或+正則表達式使用詳解之惰性擴展的一個替代方案

我們還有一個更好的替代方案。可以用一個貪婪重復與一個取反字符集:“<[^>]+>”。之所以說這是一個更好的方案在于使用惰性重復時,引擎會在找到一個成功匹配前對每一個字符進行回溯。而使用取反字符集則不需要進行回溯。

最后要記住的是,本教程僅僅談到的是正則導向的引擎。文本導向的引擎是不回溯的。但是同時他們也不支持惰性重復操作。

?*或+正則表達式使用詳解的基本內容就向你介紹到這里,希望對你學習?*或+正則表達式使用詳解有所幫助。

【編輯推薦】

  1. 正則表達式匹配數字實例解析
  2. 正則表達式匹配字符串實現詳解
  3. 正則表達式入門必學的星星點點
  4. 正則表達式引擎淺析
  5. 正則表達式字符集探究
責任編輯:仲衡 來源: IT168
相關推薦

2009-09-16 18:19:34

正則表達式組

2009-09-16 16:22:04

正則表達式匹配

2009-08-03 17:27:14

C#正則表達式

2024-10-17 17:03:43

SQL正則表達式MySQL

2010-03-25 18:25:36

Python正則表達式

2023-10-07 08:25:09

Java處理工具正則表達式

2018-09-27 15:25:08

正則表達式前端

2011-08-16 17:28:49

iPhone SDK正則表達式

2011-08-23 17:46:09

LUA正則表達式模式

2009-09-16 14:32:43

PHP正則表達式替換

2020-09-04 09:16:04

Python正則表達式虛擬機

2024-09-14 09:18:14

Python正則表達式

2010-07-14 09:47:04

Perl正則表達式

2019-07-25 17:00:44

Python正則表達式字符串

2009-09-16 14:22:44

preg_match正

2016-11-10 16:21:22

Java 正則表達式

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2009-09-16 17:15:57

正則表達式引擎

2023-09-13 08:12:45

2009-08-20 16:23:32

C#正則表達式語法
點贊
收藏

51CTO技術棧公眾號

国产成人精品亚洲精品| 亚洲免费看黄网站| 涩爱av色老久久精品偷偷鲁| 婷婷婷国产在线视频| 午夜久久久精品| 精品视频在线观看免费观看| 国产亚洲第一伦理第一区| 岛国一区二区三区| 精品剧情在线观看| 久久精品国产综合| 91精品国产乱码久久久久久久久 | 午夜欧美性电影| 国产精品主播视频| 日韩欧美黄色大片| videoxxxx另类日本极品| 在线免费看a| 欧美天堂一区| 亚洲一本大道| 日本成人不卡| 日韩一区二区在线| 国产精品人妖ts系列视频| 欧美一级大片视频| 成人综合网址| 日韩电影免费在线观看| 国产欧美综合色| 激情成人中文字幕| 亚洲欧美日韩中文字幕一区二区三区| 夜夜亚洲天天久久| 欧美另类videos死尸| 亚洲日本中文字幕| 国产精品一品| 国产v日韩v欧美v| 美女网站视频一区| 欧美精品一二| 国产激情91久久精品导航| 99精品网站| 久久日本片精品aaaaa国产| 伊人久久大香线蕉av超碰| 含羞草www国产在线视频| 呦呦在线视频| 国产无遮挡裸体视频在线观看| 美女精品导航| 欧美大片网站| 精品国产a一区二区三区v免费| 大片网站久久| 影音先锋日韩资源| 久久国产精品色婷婷| 国产成人在线视频网址| 国产精品不卡一区二区三区| 欧美日韩国产一区中文午夜| 91精品国产综合久久香蕉麻豆 | 国产精品亲子伦对白| 亚洲午夜精品网| 欧美成人精品高清在线播放| 久久成人精品视频| 亚洲专区在线视频| 久久久久久久久影视| 九色porn| 91资源在线观看| 欧美特黄一级大片| 美国av一区二区| 中文字幕在线免费不卡| 欧美性色黄大片| 另类专区欧美制服同性| www.成人av| 精品少妇无遮挡毛片| 免费国产在线观看| 成人在线视频区| 性8sex亚洲区入口| 一区二区三区在线视频观看| 亚洲精品美女久久| 国产色综合天天综合网| 91精品国产毛片武则天| 你懂的视频在线免费| 97久久亚洲| 免费在线成人网| 欧美性xxxxxxxx| 日本韩国在线不卡| 熟女人妇 成熟妇女系列视频| 成年人视频网站在线| 全国精品免费看| av一区二区不卡| 亚洲高清久久网| 99在线热播| 撸视在线观看免费视频| 国产ts一区| 不卡的av电影在线观看| 欧美一区二区三区免费观看视频| 国产精品久久久久久超碰| 欧美 日韩 国产一区| 嫩草伊人久久精品少妇av杨幂| 免费av成人在线| 欧美成人在线直播| 成人激情视频在线观看| 黄色春季福利在线看| 蜜桃久久久久| 一区在线播放视频| 国产做受高潮69| 国产精品久久a| 日本一区福利在线| 亚洲婷婷国产精品电影人久久| 欧美精品激情视频| 五月婷婷狠狠操| 青青视频一区二区| 午夜精品福利一区二区三区av| 日产精品99久久久久久| 国产超碰在线观看| 天天插综合网| 欧美日韩国产美| 欧美性色黄大片人与善| 草美女在线观看| 丁香网亚洲国际| 97在线日本国产| 男人的天堂在线播放| 欧美人与禽猛交乱配视频| 在线成人免费观看| 欧美性潮喷xxxxx免费视频看| 亚洲欧美一级| 亚洲人成精品久久久久久| 亚洲bt欧美bt日本bt| 亚洲区欧洲区| 91麻豆精品一区二区三区| 久久网福利资源网站| 95影院理论片在线观看| 99热精品在线| 色综合亚洲精品激情狠狠| 一级特黄视频| 久久成人一区| 久久久久久久久久av| 中文字幕在线免费| www成人在线观看| 国产精品日韩在线播放| 日本h片在线| 亚洲久草在线视频| 天天久久人人| 久久不卡国产精品一区二区 | 欧美二区三区在线| 精品123区| 欧美日韩亚洲视频| 人妻内射一区二区在线视频| 午夜欧美视频| 自拍偷拍亚洲区| 调教视频免费在线观看| 91蝌蚪国产九色| 蜜桃传媒视频麻豆第一区免费观看 | 美国三级日本三级久久99| 国产999在线| 日韩一级特黄| 欧美一区二区在线观看| 久久综合色播| 91亚洲永久精品| 天天人人精品| 欧美日韩午夜| 欧美孕妇性xx| 日韩一区二区三区色| 日韩精品自拍偷拍| 青青草在线视频免费观看| 国产精品热久久久久夜色精品三区| 日韩久久不卡| 伊人成人网在线看| 国产日韩欧美91| 国产精品玖玖玖在线资源| 丝袜亚洲欧美日韩综合| 国产激情视频在线看| 精品视频1区2区| 在线国产网址| 亚洲妇女屁股眼交7| 亚洲成人福利在线| aa级大片欧美| 777精品久无码人妻蜜桃| 九九精品视频在线看| 日本a级片久久久| 日韩国产精品久久| 热re99久久精品国产99热| 亚洲小说欧美另类社区| 九9re精品视频在线观看re6| 欧美日韩专区| 久久资源av| 韩国av一区二区三区在线观看| 亚洲欧洲国产日韩精品| 国产一区二区三区在线观看免费视频| 色一情一区二区三区四区| 久久av一区| 国产91沈先生在线播放| wwwwxxxxx欧美| 国产日本视频| 色94色欧美sute亚洲13| h视频网站在线观看| 欧美sm美女调教| 男人天堂视频在线观看| 中文字幕欧美日韩va免费视频| av亚洲一区二区三区| 色综合久久88| 成人久久一区| 欧美日韩国产高清视频| 国产成人免费视频| 久草.com| 精品视频在线播放免| 香蕉久久99| 日韩久久精品一区二区三区|