青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

沒畫完的畫

喂馬 劈柴 BBQ~
posts - 37, comments - 55, trackbacks - 0, articles - 0
  C++博客 ::  :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

正則表達(dá)式

Posted on 2008-09-27 10:44 沒畫完的畫 閱讀(158) 評論(0)  編輯 收藏 引用

1.概念:
   一個(gè)正則表達(dá)式,就是用某種模式去匹配一類字符串的一個(gè)公式。
   
2.Perl兼容正則表達(dá)式
必須記住的幾個(gè)符號和組合
.           匹配除換行符以外的所有字符一次
?           匹配 0 次或一次
*           匹配 0 次或多次
+           匹配 1 次或多次

使用范例:
x?      匹配 0 次或一次 x 字符串
x*      匹配 0 次或多次 x 字符串,但匹配可能的最少次數(shù),*必須跟隨一個(gè)字符后面,不能單獨(dú)出現(xiàn)
x+      匹配 1 次或多次 x 字符串,但匹配可能的最少次數(shù),+必須跟隨一個(gè)字符后面,不能單獨(dú)出現(xiàn)
.*      匹配 0 次或一次的任何字符
.+      匹配 1 次或多次的任何字符

界定范圍和位置
^           匹配字符開頭的字符
$           匹配字符結(jié)尾的字符
{m}           匹配剛好是 m 個(gè) 的指定字符串
{m,n}         匹配在 m個(gè) 以上 n個(gè) 以下 的指定字符串
{m,}          匹配 m個(gè) 以上 的指定字符串
[]            匹配符合 [] 內(nèi)的字符
[^]          匹配不符合 [] 內(nèi)的字符
[0-9]         匹配所有數(shù)字字符
[a-z]         匹配所有小寫字母字符
[^0-9]        匹配所有非數(shù)字字符
[^a-z]        匹配所有非小寫字母字符
  
\b           不屬于空白字符,向前縮進(jìn)一個(gè)字符
\d           匹配一個(gè)數(shù)字的字符,和 [0-9] 語法一樣
\w          英文字母或數(shù)字的字符,和 [a-zA-Z0-9]+ 語法一樣
\s           空格,和 [\n\t\r\f] 語法一樣
\B           匹配不以英文字母,數(shù)值為邊界的字符串
\D           非數(shù)字,其他同 \d
\S           非空格,和 [^\n\t\r\f] 語法一樣
\W          非英文字母或數(shù)字的字符串,和 [^a-zA-Z0-9] 語法一樣

a|b|c        匹配符合a字符 或是b字符 或是c字符 的字符串
abc          匹配含有 abc 的字符串
轉(zhuǎn)義:       使用\ 來取消元字符的特殊意義。包括 . * + \  [ ] { } ( ) ^ $

?      的多重定義-懶惰限定符
*?      重復(fù)任意次,但盡可能少重復(fù)
+?        重復(fù)1次或更多次,但盡可能少重復(fù)
??        重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}?      重復(fù)n到m次,但盡可能少重復(fù)
{n,}?       重復(fù)n次以上,但盡可能少重復(fù)


斷言匹配: 有4個(gè)

(?=exp)     零寬先行斷言,它匹配文本中的某些位置,這些位置的后面能匹配給定的后綴exp。
              比如\w+(?=ing\b),匹配以ing結(jié)尾的單詞的前面部分(除了ing以外的部分),
              zc:根據(jù)后綴匹配而已。和$區(qū)別在于$是行尾匹配。
              如I'm singing while you're dancing.  它會匹配sing和danc。

(?<=exp)    零寬后行斷言,它匹配文本中的某些位置,這些位置的前面能給定的前綴匹配exp。
              如(?<=\bre)\w+\b會匹配以re開頭的單詞的后半部分(除了re以外的部分),
              zc:匹配前綴。
              例如在查找reading a book時(shí),它匹配ading。

(?!exp)      零寬負(fù)向先行斷言。會匹配后綴exp不存在的位置。
              zc: 若不是exp或者沒有則匹配,用^在于存在一個(gè)不匹配某個(gè)exp的其他字符,
              而!保證不匹配exp外可以不跟任何字符。
              如:\d{3}(?!\d)匹配三位數(shù)字,而且這三位數(shù)字的后面不能是數(shù)字。
              也可以是只有前3位數(shù)字。比較\d{3}(^\d)有區(qū)別.

(?<!exp)     零寬負(fù)向后行斷言。查找前綴exp不存在的位置.

常用語法:
1,正則里一些特殊字符
  () 將表達(dá)式結(jié)組
  [] 尋找一組字符
  \d 等于 [0-9]
  \D 等于 [^0-9]
  \w 等于 [0-9A-Za-z_]
  \W 等于 [^0-9A-Za-z_]
  \s 等于 [\f\n\r\t ]
  \S 等于 [^\f\n\r\t ]
  . 等于 [^\n]

2,關(guān)于一些特殊符號
  \b 不屬于空白字符,向前縮進(jìn)一個(gè)字符
  \t 屬于空白字符,匹配制表符
  \r 屬于空白字符,匹配回車符
  \a 不屬于空白字符,匹配鬧鐘符
  \e 不屬于空白字符,匹配轉(zhuǎn)義符
  \033 不屬于空白字符,匹配八進(jìn)制符
  \x1B 不屬于空白字符,匹配十六進(jìn)制符
  \c[ 不屬于空白字符,匹配控制字符
   屬于空白字符,匹配空格
   屬于空白字符,匹配制表符
  \f 屬于空白字符,匹配換頁符
  \n 屬于空白字符,匹配換行符
  \0 不屬于空白字符,功能不詳
  \c 不屬于空白字符,功能不詳
  \x 不屬于空白字符,功能不詳

3,注意正則里的選擇符的特殊性
  選擇運(yùn)算符是所有運(yùn)算符中優(yōu)先級最低的,這意味著它最后執(zhí)行。

4,正則里的限定符的一些經(jīng)典用法
  限定符常常與一些字符或詞聯(lián)合使用
  * 匹配任意數(shù)個(gè);
  + 匹配一個(gè)或多個(gè);
  ? 匹配零個(gè)或一個(gè);
  {n} 匹配 n 個(gè);
  {n,m} 匹配 n 至 m 個(gè);
  {n,} 匹配 n 和 n 個(gè)以上;

  限定符貪婪好像與生俱有的。在缺省狀態(tài)下,*或+限定符匹配滿足正則表達(dá)式的一個(gè)范式的最大實(shí)例數(shù)。
  可用?號顯式的規(guī)定限定符的不貪婪。如果問號放在另一個(gè)限制符之后(甚至另一個(gè)問號之后),都可以使限定符不貪婪。

5,聲明與斷言
  首先注意聲明的長度為 0;
  Perl種有一組控制大小寫和換碼的聲明:
  \u 使下一個(gè)字母變大寫;
  \l 使下一個(gè)字母變小寫;
  \U 使文本的剩余字符變成大寫;
  \L 使文本的剩余字符變成小寫;
  \Q 會除字母之外的其他字符進(jìn)行換碼處理,直至遇到 \E 聲明、常規(guī)表達(dá)式結(jié)束或者字串結(jié)束。
  \A聲明和脫字符號(^)匹配字串的開始;
  \Z聲明和美元符號($)匹配字串的結(jié)束或剛好在字串結(jié)束前的換行符;
  \z 只匹配字串的結(jié)束;
  \b 匹配一個(gè)單詞(字)邊界;
  \B 匹配一個(gè)非單詞(字)邊界;

  (?#text) 忽略括號內(nèi)的注釋文本;
  (?:pattern) 與組一致,但匹配時(shí)不生成$1,$2;
  (?imsx:pattern) 與組一致,但匹配時(shí)不生成$1,$2,在特定的風(fēng)格有效期間,內(nèi)嵌風(fēng)格匹配修飾符;
  (?=pattern) 前看聲明,如果正則表達(dá)式在下一次匹配 pattern 風(fēng)格,就開始匹配,而且不影響匹配效果。
    如/\w+(?=\t)/將匹配制表符是否恰好在一個(gè)字\w+后面出現(xiàn),并且制表符不添加到$&的值中;
  (?!pattern) 如果正則表達(dá)式在后面不匹配 pattern ,才會開始匹配。如/foo(?!bar)/,只有當(dāng)出現(xiàn) foo,
    并且后面不出現(xiàn) bar 時(shí)才開始匹配;
  (?<=pattern) 后看聲明,只有在pattern已經(jīng)匹配下面的表達(dá)式,并且不將 pattern 的結(jié)果放入$&變量中,
    才匹配下面的語句。如/(?<=\t)\W+/匹配制表符是否恰好在\W+前出現(xiàn),但又不將制表符送到$& 中;
  (? (?{code}) 表示對 code 的使用是試驗(yàn)性的。如果返回真,就認(rèn)為是與(?:pattern)斷言同一行里的匹配。
    code 不插入變量。這個(gè)斷言僅僅在 use re 'eval' 編譯指示符時(shí)才有效;
  (?>pattern) 如果類型鎖定在當(dāng)前位置,就使用單獨(dú)的 pattern 匹配子字符串。如正則表達(dá)式/^(?>a*)ab/永遠(yuǎn)不會匹配,
    因?yàn)檎Z句(?>a*)將匹配字符串開頭所有的 a 字符,并刪除與 ab 匹配的字符 a;
  (!<=pattern) 非后看聲明,與后看聲明意思相反;
  (!=pattern) 非前看聲明,與前看聲明意思相反;
  (?(condition)yes-pattern|no-pattern) 條件表達(dá)式——條件語句或者是一個(gè)圓括號中的整數(shù),或者是一個(gè)斷言;
  (?(condition)yes-pattern)
  (?imsx) 嵌入風(fēng)格匹配修飾符。當(dāng)要把表達(dá)式修改符嵌入在變量中,然后把變量用在不指定自己的修飾符的一般規(guī)則表達(dá)式中;
  (?-imsx) 這個(gè)斷言很有用——后面帶任何內(nèi)容都會關(guān)閉修飾符,直到出現(xiàn)另一個(gè)嵌入的修飾符。


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一卡二| 黄色av一区| 欧美亚洲自偷自偷| 亚洲综合精品自拍| 国产一区二区三区不卡在线观看| 久久久久久久综合狠狠综合| 久久久久久夜| 日韩视频免费大全中文字幕| 日韩午夜视频在线观看| 国产精品一卡二| 老**午夜毛片一区二区三区| 欧美第一黄网免费网站| 亚洲视频精选在线| 午夜亚洲福利在线老司机| 伊人久久男人天堂| 亚洲欧洲精品一区二区精品久久久| 欧美中在线观看| 亚洲三级免费电影| 中国日韩欧美久久久久久久久| 国产午夜一区二区三区| 欧美高清视频一区二区| 欧美日韩一区国产| 久久久久久久久综合| 女人香蕉久久**毛片精品| 亚洲一区二区三区午夜| 久久不见久久见免费视频1| 亚洲看片一区| 亚洲欧美bt| 91久久精品久久国产性色也91| 一区二区三区av| 激情综合视频| 妖精成人www高清在线观看| 国产美女精品| 亚洲国产综合视频在线观看| 国产精品欧美一区二区三区奶水| 欧美88av| 国产精品伦一区| 欧美成人一区二区在线| 久久激情视频免费观看| 久久久国产精品一区二区三区| 一本综合精品| 久久久精品一品道一区| 亚洲一区成人| 久久综合影音| 欧美一级播放| 欧美精品福利在线| 久久这里只有| 国产精品久久久久久久电影| 欧美成人午夜剧场免费观看| 国产精品日韩一区| 欧美激情中文字幕一区二区| 国产欧美视频一区二区三区| 亚洲日本欧美在线| 在线播放不卡| 亚洲在线观看免费视频| 91久久午夜| 欧美专区一区二区三区| 亚洲在线免费视频| 欧美国产乱视频| 久久青草欧美一区二区三区| 欧美午夜久久久| 亚洲国产美女| 永久91嫩草亚洲精品人人| 一区二区成人精品 | 影音先锋久久精品| 亚洲一二三级电影| 99视频精品在线| 久久久综合免费视频| 午夜亚洲福利| 欧美日韩国产一区二区| 欧美高清视频www夜色资源网| 国产亚洲毛片在线| 亚洲午夜一二三区视频| 激情久久久久久久久久久久久久久久| 一区二区三区日韩欧美| 99热免费精品| 欧美**人妖| 男女精品网站| 红桃视频国产精品| 亚洲欧美中文字幕| 亚洲一区国产精品| 久久精品亚洲一区二区| 欧美精品国产精品| 美女精品国产| 狠狠入ady亚洲精品| 亚洲综合精品| 性色av一区二区三区红粉影视| 欧美日韩高清在线播放| 亚洲国产精品成人精品| 在线成人免费观看| 久久99在线观看| 欧美中文字幕在线观看| 国产精品视频一区二区三区 | 国产精品国产三级国产a| 亚洲人成网站影音先锋播放| 91久久精品国产91性色tv| 美女图片一区二区| 久久亚洲视频| 一色屋精品视频在线看| 久久久久国产一区二区| 久久婷婷成人综合色| 国产亚洲成精品久久| 亚洲欧美另类中文字幕| 欧美在线观看视频| 国产区二精品视| 欧美亚洲综合久久| 久久久免费精品| 国内精品久久久久久影视8| 久久国内精品自在自线400部| 久久久久久久性| 伊人久久综合97精品| 久久综合影视| 亚洲欧洲精品一区二区三区波多野1战4| 91久久精品国产91性色| 欧美激情在线有限公司| 最近看过的日韩成人| 宅男精品视频| 国产精品第13页| 亚洲一区二区在线| 久久国产黑丝| 国产中文一区| 另类酷文…触手系列精品集v1小说| 欧美成人一区二区三区片免费| 亚洲日本va午夜在线电影| 欧美精品一区三区在线观看| 夜夜嗨av一区二区三区四季av | 亚洲人成免费| 99在线热播精品免费| 欧美视频中文字幕在线| 亚洲在线电影| 可以看av的网站久久看| 91久久久久久久久| 欧美日韩在线免费观看| 亚洲综合国产精品| 免费观看30秒视频久久| 亚洲精品久久久久久久久久久| 欧美日韩精品福利| 午夜激情久久久| 乱人伦精品视频在线观看| 亚洲精品视频在线观看网站| 欧美日韩亚洲综合在线| 午夜精品久久久久久| 欧美成人免费在线视频| 99精品久久免费看蜜臀剧情介绍| 欧美系列一区| 久久精品国产综合精品| 亚洲国产精品va在线观看黑人| 亚洲色无码播放| 国产欧美日韩一区二区三区| 久久婷婷国产综合尤物精品| 亚洲精品一区二区在线观看| 欧美一区二区黄色| 亚洲国产精品久久久久秋霞不卡 | 国产精品久久久久久久久久免费看| 性视频1819p久久| 欧美激情第1页| 亚洲女ⅴideoshd黑人| 激情小说亚洲一区| 欧美日在线观看| 久久久国产精品一区二区中文| 亚洲国产精品第一区二区| 亚洲欧美偷拍卡通变态| 在线看无码的免费网站| 欧美日韩中文字幕日韩欧美| 久久久99国产精品免费| a4yy欧美一区二区三区| 久久夜色精品亚洲噜噜国产mv| 一本色道久久综合亚洲91| 国产老女人精品毛片久久| 欧美成人69av| 香蕉免费一区二区三区在线观看 | 亚洲欧美视频一区二区三区| 亚洲国产高清一区| 国产精品欧美精品| 欧美一区二区三区精品| 好看的日韩av电影| 欧美视频中文一区二区三区在线观看| 久久精品国产精品亚洲| aa级大片欧美三级| 久久只有精品| 亚洲欧美一区二区三区久久 | 久久精品日韩欧美| 一区二区三区色| 欧美电影免费观看高清| 性做久久久久久久久| 日韩网站免费观看| 狠狠久久亚洲欧美专区| 国产精品亚洲аv天堂网| 欧美激情精品久久久久久久变态 | 亚洲欧美福利一区二区| 最新国产乱人伦偷精品免费网站 | 亚洲免费观看在线观看| 免费久久久一本精品久久区| 小嫩嫩精品导航| 99伊人成综合| 亚洲国产精品国自产拍av秋霞| 国产原创一区二区| 国产精品家教| 欧美日韩的一区二区| 美女黄网久久|