亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

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

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

熱門標簽:梅縣地圖標注 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、電話、手機、郵箱)的實例代碼

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

巨人網絡通訊聲明:本文標題《正則表達式教程之重復匹配詳解》,本文關鍵詞  正則,表達式,教程,之,重復,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式教程之重復匹配詳解》相關的同類信息!
  • 本頁收集關于正則表達式教程之重復匹配詳解的相關信息資訊供網民參考!
  • 推薦文章
    一级女性全黄生活片免费| 日韩中文字幕在线亚洲一区| 99热精品在线| 欧美激情伊人| 香蕉视频亚洲一级| 精品国产一级毛片| 国产精品12| 国产不卡福利| 欧美一区二区三区在线观看| 日本特黄特黄aaaaa大片| 午夜欧美成人香蕉剧场| 91麻豆精品国产综合久久久| 999久久久免费精品国产牛牛| 99久久精品国产高清一区二区| 天天色成人| 成人免费观看网欧美片| 午夜欧美成人香蕉剧场| 日韩avdvd| 色综合久久天天综线观看| 一级毛片视频播放| 久草免费在线视频| 午夜在线影院| 国产激情视频在线观看| 一级毛片看真人在线视频| 国产伦精品一区二区三区在线观看 | 韩国三级一区| 韩国毛片| 91麻豆精品国产自产在线 | 香蕉视频久久| 久久99这里只有精品国产| 精品久久久久久中文| 精品国产亚洲人成在线| 成人免费福利片在线观看| 日本特黄特色aaa大片免费| 精品视频在线看 | 黄色福利片| 亚飞与亚基在线观看| 欧美另类videosbestsex高清| 精品视频一区二区| 国产亚洲精品成人a在线| 国产91精品系列在线观看| 天天色色网| 亚洲天堂在线播放| 九九免费高清在线观看视频| 国产国产人免费视频成69堂| 国产精品1024永久免费视频| 999精品在线| 亚洲精品影院| 亚洲爆爽| 国产亚洲精品成人a在线| 国产精品12| 999久久66久6只有精品| 久久国产影院| 精品视频在线观看一区二区| 精品国产亚洲人成在线| 欧美大片aaaa一级毛片| 一级女性全黄生活片免费| 在线观看成人网| 999精品视频在线| 亚洲 激情| 国产原创中文字幕| 欧美激情一区二区三区视频高清| 99久久精品费精品国产一区二区| 久久99中文字幕久久| 国产不卡在线看| 色综合久久手机在线| 美女免费精品视频在线观看| 免费的黄色小视频| 精品视频免费看| 国产激情一区二区三区| 日韩在线观看免费| 日韩在线观看免费完整版视频| 精品视频免费观看| 精品视频免费在线| 一本伊大人香蕉高清在线观看| 国产一区二区精品久| 精品毛片视频| 青青久久精品国产免费看| 九九精品影院| 日韩专区亚洲综合久久| 999精品影视在线观看| 日本免费区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 青青久久国产成人免费网站| 久久久久久久男人的天堂| 日韩avdvd| 欧美另类videosbestsex视频 | 国产一区二区精品尤物| 精品国产香蕉在线播出| 国产欧美精品午夜在线播放| 午夜家庭影院| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久国产一区二区| 久久精品店| 精品视频在线看| 国产美女在线观看| 精品久久久久久中文| 久久精品成人一区二区三区| 欧美激情一区二区三区在线播放| 久草免费在线观看| 精品视频一区二区三区| 黄色免费三级| 欧美a级v片不卡在线观看| 韩国三级视频网站| 免费毛片播放| 二级特黄绝大片免费视频大片| 国产成人精品一区二区视频| 精品久久久久久中文字幕2017| 国产网站在线| 国产伦理精品| 台湾美女古装一级毛片| 国产成人欧美一区二区三区的| 天天做人人爱夜夜爽2020| 韩国毛片 免费| 毛片的网站| 日韩在线观看视频网站| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日韩中文字幕在线观看视频| 日本在线www| 欧美a免费| 一级毛片视频免费| 91麻豆国产福利精品| 国产精品自拍在线| 日韩一级黄色| 免费国产在线观看| 黄色福利片| 精品国产一区二区三区国产馆| 青青久久精品国产免费看| 国产一区二区精品在线观看| 欧美激情一区二区三区在线播放 | 国产成人精品影视| 久久国产精品永久免费网站| 国产国语在线播放视频| 久久国产影院| 免费一级生活片| 午夜在线影院| 欧美a级v片不卡在线观看| 国产a一级| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美电影免费看大全| 国产高清视频免费观看| 91麻豆国产| 亚洲精品永久一区| 国产国语在线播放视频| 一级片免费在线观看视频| 久久国产精品自由自在| 日本免费乱理伦片在线观看2018| 久久国产影院| 国产a毛片| 日本特黄一级| 国产91精品露脸国语对白| 国产成人精品综合久久久| a级黄色毛片免费播放视频| 午夜在线亚洲| 中文字幕一区二区三区精彩视频| 99热视热频这里只有精品| 99热精品在线| 国产高清在线精品一区a| 精品国产亚一区二区三区| 黄色免费三级| 国产美女在线一区二区三区| 午夜在线影院| 亚洲不卡一区二区三区在线| 99久久精品费精品国产一区二区| 国产成人精品综合| 99久久精品国产麻豆| 日韩免费在线| 日韩在线观看免费完整版视频| 日韩在线观看视频网站| 久久精品店| 国产成人欧美一区二区三区的| 欧美α片无限看在线观看免费| 一级女性全黄久久生活片| 色综合久久手机在线| 国产精品1024永久免费视频| 美女免费精品高清毛片在线视| 国产成a人片在线观看视频| 国产一区二区高清视频| 亚洲精品中文字幕久久久久久| 日韩avdvd| 日韩女人做爰大片| 日韩在线观看免费完整版视频| 欧美大片一区| 可以免费看污视频的网站| 亚洲第一视频在线播放| 日韩av成人| 青青青草视频在线观看| 尤物视频网站在线| 精品久久久久久影院免费| 日韩在线观看免费| 日本在线不卡视频| 午夜欧美成人香蕉剧场| 日本在线不卡视频| 国产麻豆精品高清在线播放| 欧美日本国产| 你懂的在线观看视频| 成人高清免费| 久久精品免视看国产明星 | 午夜欧美成人香蕉剧场| 四虎影视久久久|