#content-region{background-image:url(http://p.blog.csdn.net/images/p_blog_csdn_net/rcom10002/EntryImages/20081027/watermark.gif);}#content-regionh3{border:1pxdotted#333333;background-color:#f9f9f9;padding:10px;font-size:24p" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

簡單入門正則表達(dá)式 - 第五章 多字符的匹配

系統(tǒng) 1599 0
<style> #content-region { background-image: url(http://p.blog.csdn.net/images/p_blog_csdn_net/rcom10002/EntryImages/20081027/watermark.gif); } #content-region h3 { border: 1px dotted #333333; background-color: #f9f9f9; padding: 10px; font-size: 24px; } #content-region p { font-family: "宋體", "仿宋"; font-size: 16px; line-height: 28px; text-decoration: none; text-indent: 32px; } #content-region .regex-pattern { font-style: oblique; font-family: "Courier New", Courier, monospace; background-color: #FFCCCC; border-top-style: solid; border-right-style: none; border-bottom-style: solid; border-left-style: none; border-top-color: #FF0000; border-bottom-color: #FF0000; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-right-color: #FF0000; border-left-color: #FF0000; padding: 0px 5px 0px 5px; } #content-region .regex-result { font-family: "Courier New", Courier, monospace; background-color: #A4FFE1; border-top-style: solid; border-right-style: none; border-bottom-style: solid; border-left-style: none; border-top-color: #339966; border-bottom-color: #339966; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-right-color: #339966; border-left-color: #339966; padding: 0px 5px 0px 5px; } #content-region blockquote { padding: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; width: auto; } #content-region img { border: 1px dotted #000000; padding: 16px; background-color: #f9f9f9; margin-top: 16px; margin-right: 16px; margin-bottom: 16px; margin-left: 64px; } #content-region code { white-space: pre; } </style>

一、字符集合

字符集合,也可以叫做字符類,它允許我們從多個(gè)候選字符中提取一個(gè)滿足條件的字符。它的語法形式有兩種, [abcdef] [a-f] 。雖然是集合,但每次只允許匹配一個(gè)單字符,如果要進(jìn)行重復(fù)性匹配操作,就要借助“*”、“+”和花括號的功能了。讓我們先學(xué)習(xí)一下[abcdef]這種形式的用法。

假如我們要對電話號碼格式進(jìn)行驗(yàn)證,以“+086-800-800-8888”為例,其中 +086 的加號和首位數(shù)字都是可選字符。現(xiàn)在,我們對號碼的第二個(gè)字符進(jìn)行分析,它是一個(gè) 0 至 9 的數(shù)字,字符集合的表示方法是[0123456789],它可以與 0 至 9 之間的任意一個(gè)字符進(jìn)行匹配。接下來我們要做的就是確定每個(gè)部分的匹配次數(shù), [0123456789]{3} [0123456789]{3} [0123456789]{3} [0123456789]{4} 。又因?yàn)?086 的首位可選,所以,我們最終構(gòu)造出來的正則表達(dá)式語法為 /+?[0123456789]{2,3}-[0123456789]{3}-[0123456789]{3}-[0123456789]{4} 。這里值得注意的地方是“+”需要轉(zhuǎn)義,因?yàn)椤?”是正則表達(dá)式的語法一部分,它是具有特殊含義的,無法被我們直接利用,如果要使用“+”,就要對它進(jìn)行轉(zhuǎn)義。轉(zhuǎn)義后的“/+”能告訴正則表達(dá)式引擎,當(dāng)前這個(gè)“+”不是語法具有特殊意義,只是一個(gè)字符“+”而已。

簡單入門正則表達(dá)式 - 第五章 多字符的匹配

二、字符范圍的表示

字符集合的第二種語法形式 [a-f] 可以簡化連續(xù)字符的書寫方法,上例中的 [0123456789] 就能夠簡化為 [0-9] ,這樣,簡化后的語法就成為 /+?[0-9]{2,3}-[0-9]{3}-[0-9]{3}-[0-9]{4} 。我們還可以混合使用字符集合的語法,來提高靈活性。如 [a-fuwy0-9]

簡單入門正則表達(dá)式 - 第五章 多字符的匹配

如果方括號內(nèi)的“-”的兩端不是表示范圍開始和結(jié)束的字符的話,它就會(huì)被當(dāng)作普通的“-”來處理。讓我們再看一個(gè)例子。現(xiàn)在要從句子“Javascript includes built-in support for array, date, and Regular-expression objects.”中提取那些含有“-”的復(fù)合詞。我們先采用字符集合的形式來匹配“-”,使用語法 [a-zA-z]+[-][a-zA-z]+ ,當(dāng)然我們也可以直接寫“-”來進(jìn)行匹配 [a-zA-z]+-[a-zA-z]+

簡單入門正則表達(dá)式 - 第五章 多字符的匹配

看了上面的例子有些讀者可能會(huì)感到很奇怪,既然可以指定字符集合的范圍,我們?yōu)槭裁床恢苯訉? [A-z] ,而要采用 [a-zA-Z] 這種形式呢?這是因?yàn)樵贏SCII和Unicode字符集中,大小寫字母的位置并不是連續(xù)的,它們之間還有六個(gè)其它字符,如下圖所示:

三、使用補(bǔ)集^

前面的兩種語法都是正常匹配時(shí)所要用到的,但是,如果我們想使一個(gè)不存在于字符集合中的字符滿足匹配條件時(shí),又該怎么實(shí)現(xiàn)呢?換一句話說,除了集合之外的所有字符都是我們想要匹配的字符,正則表達(dá)式提供了一種 [^abcf-i] 的語法形式。對于這種語法,我們可以先按照正常思路考慮 [abcf-i] 的含義,匹配 abc 中任意一字符和 f 至 i 之間的字符,然后轉(zhuǎn)過來理解,不滿足 abc 中任意一字符和 f 至 i 之間的字符的內(nèi)容,都是我們想要匹配的目標(biāo)。值得注意的是“^”必須緊挨在左方括號的右邊,否則它就不具有特殊含義,只是普通的字符“^”而已。

簡單入門正則表達(dá)式 - 第五章 多字符的匹配

四、選擇

字符集合能夠從多個(gè)候選字符中選中一個(gè)來與目標(biāo)字符進(jìn)行匹配,但是,如何提供多個(gè)連續(xù)的候選字符組合呢?在正則表達(dá)式中,就有一個(gè)提供這樣功能的元字符“|”。它將我們要匹配的字符組合用“|”分隔開,然后在目標(biāo)字符串中進(jìn)行匹配,只要有與分隔部分的內(nèi)容能夠匹配上的話,就能進(jìn)行匹配。

下面是一段人物眾多的小笑話,要理解起來本來是很費(fèi)勁兒的,但通過正則表達(dá)式 魔王|公主|沒有人|曹操|(zhì)鬼|靠|誰|上帝 把所有的人物角色全列出來,就容易理解得多了。

      《喊破喉嚨》

      
        魔王
      
        公主
      
      帶回了自己的城堡。 

      
        魔王
      
      :你盡管喊破喉嚨吧,
      
        沒有人
      
      會(huì)來救你的! 

      
        公主
      
      :破喉嚨!破喉嚨! 

      
        沒有人
      
        公主
      
      !我來救你了! 

      
        魔王
      
      :說
      
        曹操
      
      
        曹操
      
      到! 

      
        曹操
      
        魔王
      
      ,你叫我干嘛?! 

      
        魔王
      
      :哇勒!看到
      
      了!! 

      
      !被發(fā)現(xiàn)了! 

      
      :胡說,
      
      發(fā)現(xiàn)我了! 

      
      :關(guān)我屁事! 

      
        魔王
      
      :Oh~my God! 

      
        上帝
      
      叫我?! 

      
        沒有人
      
      叫你啊! 

      
        沒有人
      
      :我哪有!! 

      
        魔王
      
      從此得了精神分裂癥…… 
	
    

五、知識要點(diǎn)補(bǔ)充與鞏固

到現(xiàn)在為止,我們已經(jīng)學(xué)會(huì)了很多基本的樣式匹配,下面表格中是對前面的知識內(nèi)容的一個(gè)總結(jié)。

語法形式 語法含義
A 匹配一個(gè)單一字符“A”
. 匹配任意一個(gè)字符
? 重復(fù)零次或一次
/? 轉(zhuǎn)義后的字符“?”
* 重復(fù)零次或更多次(貪婪模式)
+ 重復(fù)一次或更多次(貪婪模式)
*? 重復(fù)零次或更多次(懶惰模式)
+? 重復(fù)一次或更多次(懶惰模式)
{n} 重復(fù) n 次
{n,} 重復(fù) n 次或更多次
{m,n} 重復(fù) m 到 n 次(貪婪模式)
{m,n}? 重復(fù) m 到 n 次(懶惰模式)
[abc] 匹配“a”,“b”,“c”中的任意一個(gè)字符
[abcf-i] 匹配“a”,“b”,“c”,“f”至“g”中的任意一個(gè)字符
[^1-37a-gx] 匹配“1”至“3”,“7”,“a”至“g”,“x”之外的任意一個(gè)字符
<!-- InstanceEndEditable -->

簡單入門正則表達(dá)式 - 第五章 多字符的匹配


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天摸夜夜添久久精品麻豆 | 深夜啪啪网站 | 亚洲精品国产福利一区二区三区 | 久久香蕉国产线看观看式 | 毛片网页 | 中文字幕在线观看亚洲日韩 | 99香蕉国产精品偷在线观看 | 国产一区视频在线 | 在线观看精品一区 | 精品欧美在线 | 国产精品久久一区一区 | 色综合久久久高清综合久久久 | www九色| 久久午夜神器 | 亚洲欧美国产另类视频 | 国产成人亚洲精品91专区手机 | 欧美日韩在线精品成人综合网 | 久久久婷婷 | 91青青青国产在观免费影视 | 国产99精品视频 | 久热中文字幕在线观看 | 国产在线精品二区赵丽颖 | 国产精品国产欧美综合一区 | 亚洲欧洲视频在线 | 99久久国产视频 | 欧美精品在线一区 | 色狠狠狠狠综合影视 | 免费视频精品一区二区三区 | 国产99青草全福视在线 | 亚洲一区中文字幕在线观看 | 91论坛在线| 九九视频在线观看视频 | 欧美国产日产精品免费视频 | 99热最新在线观看 | 欧美亚洲一区二区三区四 | aaaa一级片 | 国产不卡视频在线观看 | 变态 调教 视频 国产九色 | 777色狠狠一区二区三区 | 午夜私人影院在线观看 | 国产精品二区三区 |