欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 正則表達式教程之重復匹配詳解

正則表達式教程之重復匹配詳解

熱門標簽:梅縣地圖標注 400電話辦理電話辦理 外呼系統無呼出路由是什么原因 貴港公司如何申請400電話 地圖標注教學點 呼叫系統外呼只能兩次 甘肅醫療外呼系統排名 西藏智能外呼系統代理商 ai電話機器人搭建

本文實例講述了正則表達式教程之重復匹配。分享給大家供大家參考,具體如下:

注:在所有例子中正則表達式匹配結果包含在源文本中的之間,有的例子會使用Java來實現,如果是java本身正則表達式的用法,會在相應的地方說明。所有java例子都在JDK1.6.0_13下測試通過。

一、有多少個匹配

前面幾篇講的都是匹配一個字符,但是一個字符或字符集合要匹配多次,應該怎么做呢?比如要匹配一個電子郵件地址,用之前說到的方法,可能有人會寫出像\w@\w\.\w這樣的正則表達式,但這個只能匹配到像a@b.c這樣的地址,明顯是不正確的,接下來就來看看如何匹配電子郵件地址。

首先要知道電子郵件地址的組成:以字母數字或下劃線開頭的一組字符,后面跟@符號,再后面是域名,即用戶名@域名地址。不過這也跟具體的郵箱服務提供商有關,有的在用戶名中也允許.字符。

1、匹配一個或多個字符

要想匹配同一個字符(或字符集合)的多次重復,只要簡單地給這個字符(或字符集合)加上一個+字符作為后綴就可以了。+匹配一個或多個字符(至少一個)。如:a匹配a本身,a+將匹配一個或多個連續出現的a;[0-9]+匹配多個連續的數字。

注意:在給一個字符集合加上+后綴的時候,必須把+放在字符集合的外面,否則就不是重復匹配了。如[0-9+]這樣就表示數字或+號了,雖然語法上正確,但不是我們想要的了。

文本:Hello, mhmyqn@qq.com or mhmyqn@126.com is my email.

正則表達式:\w+@(\w+\.)+\w+

結果:Hello, 【mhmyqn@qq.com】 or 【mhmyqn@126.com】 is my email.

分析:\w+可以匹配一個或多個字符,而子表達式(\w+\.)+可匹配像xxxx.edu.這樣的字符串,而最后不會是.字符結尾,所以后面還會有一個\w+。像mhmyqn@xxxx.edu.cn這樣的郵件地址也會匹配到。

2、匹配零個或多個字符

匹配零個或多個字符使用元符*,它的用法和+完全一樣,只要把它放在一下字符或字符集合的后面,就可以匹配該字符(或字符集合)連續出現零次或多次。如正則表達式ab*c可以匹配ac、abc、abbbbbc等。

3、匹配零個或一個字符

匹配零個或一個字符使用元字符?。像上一篇說到的匹配一個空白行使用正則表達式\r\n\r\n,但在Unix和Linux中不需要\r,就可以使用元字符?,\r?\n\r?\n這樣既可匹配windows中的空白行,也可匹配Unix和Linux中的空白行。下面來看一個匹配http或https協議的URL的例子:

文本:The URL is http://www.mikan.com, to connect securely use https://www.mikan.cominstead.

正則表達式:https?://(\w+\.)+\w+

結果:The URL is 【http://www.mikan.com】, to connect securely use 【https://www.mikan.com】 instead.

分析:這個模式以https?開頭,表示?之前的一個字符可以有,也可以沒有,所以它能匹配http或https,后面部分和前一個例子一樣。

二、匹配的重復次數

正則表達式里的+、*和?解決了很多問題,但是:

1)+和*匹配的字符個數沒有上限。我們無法為它們將匹配的字符個數設定一個最大值。

2)+、*和?至少匹配一個或零個字符。我們無法為它們將匹配的字符個數另行設定一個最小值。

3)如果只使用*和+,我們無法把它們將匹配的字符個數設定為一個精確的數字。

正則表達式里提供了一個用來設定重復次數的語法,重復次數要用{和}字符來給出,把數值寫在它們中間。

1、為重復匹配次數設定一個精確值

如果想為重復匹配次數設定一個精確的值,把那個數字寫在{和}之間即可。如{4}表示它前面的那個字符(或字符集合)必須在原始文本中連續重復出現4次才算是一個匹配,如果只出現了3次,也不算是一個匹配。

如前面幾篇中說到的匹配頁面中顏色的例子,就可以用重復次數來匹配:#[[:xdigit:]]{6}或#[0-9a-fA-F]{6},POSIX字符在java中是#\\p{XDigit}{6}。

2、為重復匹配次數設定一個區間

{}語法還可以用來為重復匹配次數設定一個區間,也就是為重復匹配次數設定一個最小值和最大值。這種區間必須以{n, m}這樣的形式給出,其中n>=m>=0。如檢查日期格式是否正確(不檢查日期的有效性)的正則表達式(如日期2012-08-12或2012-8-12):\d{4}-\d{1,2}-\d{1,2}。

3、匹配至少重復多少次

{}語法的最后一種用法是給出一個最小的重復次數(但不必給出最大重復次數),如{3,}表示至少重復3次。注意:{3,}中一定要有逗號,而且逗號后不能有空格。否則會出錯。

來看一個例子,使用正則表達式把所有金額大于$100的金額找出來:

文本:

$25.36

$125.36

$205.0

$2500.44

$44.30

正則表達式:$\d{3,}\.\d{2}

結果:

$25.36

【$125.36】

【$205.0】

【$2500.44】

$44.30

+、*、?可以表示成重復次數:

+等價于{1,}

*等價于{0,}

?等價于{0,1}

三、防止過度匹配

?只能匹配零個或一個字符,{n}和{n,m}也有匹配重復次數的上限,但是像*、+、{n,}都沒有上限值,這樣有時會導致過度匹配的現象。

來看匹配一個html標簽的例子

文本:

Yesterday is b>history/b>,tomorrow is a B>mystery/B>, but today is a b>gift/b>.

正則表達式:[Bb]>.*/[Bb]>

結果:

Yesterday is 【b>history/b>,tomorrow is a B>mystery/B>, but today is a b>gift/b>】.

分析:[Bb]>匹配b>標簽(不區分大小寫),/[Bb]>匹配/b>標簽(不區分大小寫)。但結果卻不是預期的那樣有三個,第一個/b>標簽之后,一直到最后一個/b>之間的東西全部匹配出來了。

為什么會這樣呢?因為*和+都是貪婪型的元字符,它們在匹配時的行為模式是多多益善,它們會盡可能從一段文本的開頭一直匹配到這段文本的末尾,而不是從這段文本的開頭匹配到碰到第一個匹配時為止。

當不需要這種貪婪行為時,可以使用這些元字符的懶惰型版本。懶惰意思是匹配盡可能少的字符,與貪婪型相反。懶惰型元字符只需要給貪婪型元字符加上一個?后綴即可。下面是貪婪型元字符的對應懶惰型版本:

*       *?

+       +?

{n,}   {n,}?

所以上面的例子中,正則表達式只需要改成[Bb]>.*?/[Bb]>即可,結果如下:

b>history/b>

B>mystery/B>

b>gift/b>

四、總結

正則表達式的真下威力體現在重復次數匹配方面。這里介紹了+、*、?幾種元字符的用法,如果要精確的確定匹配次數,使用{}。元字符分貪婪型和懶惰型兩種,在需要防止過度匹配的場合下,請使用懶惰型元字符來構造正則表達式。在下一篇中將會介紹位置匹配。

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述對大家正則表達式學習有所幫助。

您可能感興趣的文章:
  • Python使用中文正則表達式匹配指定中文字符串的方法示例
  • iOS 正則表達式判斷純數字及匹配11位手機號碼的方法
  • Go語言正則表達式用法實例小結【查找、匹配、替換等】
  • 正則表達式匹配IP的表達式(推薦)
  • 正則表達式m修飾符(多行匹配)
  • 正則表達式全局匹配模式(g修飾符)
  • Java使用正則表達式(regex)匹配中文實例代碼
  • 正則表達式匹配(URL、電話、手機、郵箱)的實例代碼

標簽:哈密 湖州 涼山 泰安 常州 大興安嶺 本溪 海口

巨人網絡通訊聲明:本文標題《正則表達式教程之重復匹配詳解》,本文關鍵詞  正則,表達式,教程,之,重復,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式教程之重復匹配詳解》相關的同類信息!
  • 本頁收集關于正則表達式教程之重復匹配詳解的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产精品―色哟哟| 欧美性生活影院| 欧美大胆一级视频| 亚洲蜜臀av乱码久久精品蜜桃| 免费av网站大全久久| 中文字幕99页| 欧美色男人天堂| 国产亚洲精久久久久久| 蜜臀av一区二区在线观看| 三级影片在线观看欧美日韩一区二区| 午夜久久电影网| 国产尤物一区二区在线| 日韩精品一区二区三区中文精品| 亚洲欧美激情一区二区| 韩国欧美国产1区| 亚洲天堂成人av| 精品视频1区2区3区| 亚洲一区二区三区四区中文字幕| 不卡电影一区二区三区| 久久嫩草捆绑紧缚| 欧美一区二区三区思思人| 日韩欧美精品在线视频| 91久久久久久久久久久久久久| 日韩欧美黄色影院| 蜜臀av在线播放一区二区三区| 你懂得在线视频| 欧美日韩激情一区二区三区| 亚洲电影中文字幕在线观看| 91啪九色porn原创视频在线观看| 色呦呦国产精品| 国产精品久久久久影院色老大| 国产成人午夜视频| 91在线播放观看| 18欧美乱大交hd1984| 91在线免费视频观看| 欧美午夜精品理论片a级按摩| 欧美激情一区不卡| 粉嫩一区二区三区在线看| 国产调教在线观看| 国产精品国产三级国产aⅴ原创| 成人黄色软件下载| 在线观看欧美日本| 亚洲一区二区视频| 亚洲欧美日本一区| 精品国产乱码91久久久久久网站| 日韩电影在线一区二区| 中国女人特级毛片| 国产日韩欧美一区二区三区乱码 | 强迫凌虐淫辱の牝奴在线观看| 亚洲成人先锋电影| 亚洲国产成人午夜在线一区| 亚洲一区二区免费视频| 天堂蜜桃91精品| 一区二区三区欧美| 欧美刺激午夜性久久久久久久| 国产乱码精品一区二区三区五月婷 | 极品人妻videosss人妻| 日本黄色一区二区| 日韩三级电影网址| 亚洲人快播电影网| 国产凹凸在线观看一区二区| 国产伦精品一区二区三区妓女| 一本色道久久综合亚洲aⅴ蜜桃 | 天天综合天天做| 精品国产乱码久久久久久久| 亚洲国产欧美另类丝袜| 日韩电影在线免费观看| 国产寡妇亲子伦一区二区| 日本高清不卡视频| 一区二区成人在线| 91视频免费看片| 视频在线在亚洲| 日韩午夜精品视频| 插我舔内射18免费视频| 欧美一级免费大片| 白白色亚洲国产精品| 国产精品乱码妇女bbbb| 一区二区三区久久久久| 麻豆高清免费国产一区| 欧美一级二级三级蜜桃| 后入内射无码人妻一区| 国产精品一卡二卡在线观看| 亚洲国产精品99久久久久久久久| 国产精品白嫩白嫩大学美女| 成人午夜碰碰视频| 国产精品五月天| 欧美日韩一区三区| 精品少妇一区二区三区免费观| 亚洲不卡av一区二区三区| 欧美精品丝袜中出| a级在线观看视频| 美女视频网站久久| 久久久三级国产网站| 日本爱爱爱视频| 黑人巨大精品欧美一区| 亚洲男人天堂av| 91黄色免费版| 先锋资源av在线| 看片网站欧美日韩| 久久伊人蜜桃av一区二区| 欧美三级黄色大片| 99精品视频一区| 中文字幕亚洲成人| 色狠狠一区二区三区香蕉| www.色天使| 国产精品综合一区二区三区| 欧美韩国日本不卡| 欧美日韩国产一二三| 成人精品在线观看视频| 成人欧美一区二区三区| 精品嫩草影院久久| 91黄色激情网站| 国产免费a级片| 亚洲h在线观看| 日韩一级视频免费观看在线| 免费不卡的av| 国产剧情一区二区| 国产精品美女久久久久av爽李琼| 久热这里有精品| 国产乱淫av一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 久久先锋影音av| 91精品国产综合久久久久| 免费在线观看一级片| 日本一级片在线播放| 91影视在线播放| 激情五月激情综合网| 一区二区三区不卡在线观看| 不卡一区在线观看| 天堂一区二区在线免费观看| 国产精品素人视频| 欧美一区二区国产| 国产男女猛烈无遮挡a片漫画| 日韩在线a电影| 久久精品一区二区三区四区| 北条麻妃在线观看视频| 成人激情免费视频| 久久亚洲综合色一区二区三区| 波多野结衣爱爱视频| 欧美深性狂猛ⅹxxx深喉 | 中文字幕狠狠干| 免费视频最近日韩| 亚洲免费观看视频| 中文字幕高清不卡| 国产精品国产三级国产有无不卡 | 国产91丝袜在线观看| 亚洲不卡一区二区三区| 亚洲欧美一区二区三区孕妇| 精品国产乱码久久久久久闺蜜| 欧美另类videoxo高潮| 国模无码视频一区| 成人午夜私人影院| 精品一区二区免费在线观看| **网站欧美大片在线观看| 精品国产三级电影在线观看| 欧美专区亚洲专区| 免费黄色国产视频| www.5588.com毛片| 欧美性受xxxx黑人| 欧美久久久久久久久久久| 国产大学生av| 在线观看视频你懂得| 成人免费高清视频在线观看| 青青草视频一区| 国产尤物一区二区在线| 奇米888四色在线精品| 精品一区二区免费看| 亚洲影院久久精品| 亚洲影院久久精品| 亚洲国产成人精品视频| 免费亚洲电影在线| 精品一区二区在线免费观看| 美女一区二区久久| 久久精品99久久久| 国产成人自拍网| 国产99精品国产| 99精品欧美一区二区三区小说| 粉嫩aⅴ一区二区三区四区| 国产成人福利片| 亚洲国产综合av| 中文字幕制服丝袜| 国产av一区二区三区传媒| 西西大胆午夜视频| 国产女主播喷水高潮网红在线| 日韩一级av毛片| 日本爱爱小视频| 欧美性大战久久久| 在线国产电影不卡| 色欧美乱欧美15图片| 日韩一级大片在线观看| 久久女同精品一区二区| 国产精品免费视频观看| 香蕉久久夜色精品国产使用方法| 日韩精品欧美精品| 精品制服美女久久| 欧美老女人bb| www.日本高清视频| 在线观看国产91| 91福利视频网站| 国产婷婷色一区二区三区在线|