a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

Perl常規(guī)表達(dá)式(1)

2019-11-18 17:23:57
字體:
供稿:網(wǎng)友

如果在Unix中曾經(jīng)使用過sde,awk,grep這些指令的話,相信對于Perl語言中的常規(guī)表達(dá)式(RegularExPRession)應(yīng)該不會感到陌生才對。在Perl語言中因為有這個功能,所以對于字符串的處理能力是非常強有力的。RegularExpression可視為用來處理字符串的一種模式(pattern),其使用的格式為

/pattern/。在Perl語言的程序中,經(jīng)常可以看到類似語法的應(yīng)用,在CGI程序設(shè)計中也不例外。只要能夠善用常規(guī)表達(dá)式的話,要處理任何難的字符串皆可迎刃而解,在本章中筆者會用深入淺出的方式來介紹RegularExpression的用法。

  常規(guī)表達(dá)式(RegularExpression)也譯作正則表達(dá)式或文字處理模式,是指定模式的一種方法,這種模式對文本進(jìn)行篩選,只匹配特定的字符串。一旦匹配到了一個字符串,就可以從大量的文本中將其抽取出來,或者利用另一個字符串來替代這個字符串。

  常規(guī)表達(dá)式也是初學(xué)Perl者的難點所在,但一旦掌握其語法,它們就擁有幾乎無限的模式匹配能力,而且Perl編程的大部分工作都是掌握常規(guī)表達(dá)式。

  一常規(guī)表達(dá)式中,/pattern/常用到的語法

--------------------------------------------------------------------------------/pattern/    結(jié)果

       除了換行字符/n外,找尋只有一個字符的字符串

x?      找尋0個或是1個x字符

x*      找尋0個或是0個以上的x字符

.*      找尋0個或是0個以上的任何字符

x       找尋0個或是1個以上的x字符

.       找尋1個或是1個以上的任何字符

{m}     找尋剛好是m個個數(shù)指定的字符

{m,n}    找尋在m個數(shù)個數(shù)以上,n個個數(shù)以下指定的字符

{m,}     找尋m個個數(shù)以上指定的字符

〔〕     找尋符合〔〕內(nèi)的字符

〔^〕     找尋不符合〔〕內(nèi)的字符

〔0-9〕    找尋符合0到9的任何一個字符

〔a-z〕    找尋符合a到z的任何一個字符

〔^0-9〕    找尋不符合0到9的任何一個字符

〔^a-z〕    找尋不符合a到z的任何一個字符

^    找尋字符開頭的字符

$    找尋字符結(jié)尾的字符

/d    找尋一個digit(數(shù)字)的字符,和〔0-9〕語法一樣

/d     找尋一個digit(數(shù)字)以上的字符串,和〔0-9〕 語法一樣

/D    找尋一個non-digit(非數(shù)字)的字符,和〔^0-9〕語法一樣

/D     找尋一個non-digit(非數(shù)字)以上的字符,和〔^0-9〕 語法一樣

/w    找尋一個英文字母或是數(shù)值的字符,和〔a-zA-Z0-9〕語法一樣

/w     找尋一個以上英文字母或是數(shù)值的字符,和〔a-zA-Z0-9〕 語法一樣

/W    找尋一個非英文字母,數(shù)值的字符,和〔^a-zA-Z0-9〕語法一樣

/W     找尋一個以上非英文字母,數(shù)值的字符,和〔^a-zA-Z0-9〕 語法一樣

/s    找尋一個空白的字符,和〔/n/t/r/f〕一樣

/s     找尋一個以上空白的字符,和〔/n/t/r/f〕 一樣

/S    找尋一個非空白的字符,和〔^/n/t/r/f〕一樣

/S     找尋一個以上非空白的字符,和〔^/n/t/r/f〕 一樣

/b    找尋一個不以英文字母,數(shù)值為邊界的字符串

/B    找尋一個以英文字母,數(shù)值為邊界的字符串

a|b|c    找到符合a字符或是b字符或是c字符的字符串

abc    找到一個含有abc的字符串

(pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法

      第一個()內(nèi)所找到的字符串變成$1這個變量或是/1變量

      第二個()內(nèi)所找到的字符串變成$2這個變量或是/2變量

  以此類推,筆者會在下一小節(jié)中詳細(xì)介紹它的用法/pattern/ii這個參數(shù)是代表忽略英文大小寫的意思,也就是在找尋字符串的時候,不會去考慮英文的大小寫/如果要在pattern模式中找尋一個有特殊的意義的字符,要在這個字符前加上/這個符號,這樣才會讓這個特殊字符失效

二常規(guī)表達(dá)式(RegularExpression)的簡單范例

  看了上一小節(jié)文字處理模(RegularExpression)之的,初學(xué)者對于這個語法的應(yīng)用可能還不是很清楚,所以筆者會在這一小節(jié)中,舉出一些在常規(guī)表達(dá)式中常用的范例給大家看看:范例    說明/perl/    找到含有perl的字符串

/^perl/    找到開頭是perl的字符串

/perl$/    找到結(jié)尾是perl的字符串

/c|g|i/    找到含有c或g或i的字符串

/cg{2,4}i/    找到c后面跟著2個到4個g,再跟著i的字符串

/cg{2,}i/    找到c后面跟著2個以上g,再跟著i的字符串

/cg{2}i/    找到c后面跟著2個g,再跟著i的字符串

/cg*i/    找到c后面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/

/cg i/    找到c后面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/

/cg?i/    找到c后面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/

/c.i/    找到c后面跟著一個任意字符,再跟著i的字符串

/c..i/    找到c后面跟著二個任意字符,再跟著i的字符串

/〔cgi〕/    找到符合有這三個字符任意一個的字符串

/〔^cgi〕/    找到?jīng)]有這三個字符中任意一個的字符串

//d/    找尋符合數(shù)值的字符串

       可以使用//d /來表示一個或是多個數(shù)值的字符串

//D/    找尋符合不是數(shù)值的字符串

       可以使用//D /來表示一個或是更多個非數(shù)值的字符串

//w/    找尋符合英文字母,數(shù)值的字符串

      可以使用//w /來表示一個或是更多個英文字母,數(shù)值的字符串

//W/    找尋符合非英文字母,數(shù)值字符的字符串

       可以使用//W /來表示一個或是更多個非英文字母,數(shù)值的字符串

//s/    找尋符合空白的字符串

       可以使用//s /來表示一個或是更多個空白字符的字符串

//S/    找尋符合不是空白的字符串

       可以使用//S /來表示一個或是更多不是空白的字符的字符串

//*/    找尋符合*這個符號的字符串,因為*在常規(guī)表達(dá)式中有它的特殊意思,所以要在這個特殊符號前加上/這個符號,這樣才會讓這個特殊字符失效

/abc/i    找尋符合abc的字符串而且不考慮這些符合字符串的大小寫

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 99久久精品国产一区二区成人 | 亚洲一区二区三区 | 欧美日产国产成人免费图片 | 亚洲女人天堂成人av在线 | 国产成人一区二区三区影院在线 | 天天看天天做 | 99久久99久久精品国产片果冻 | 国产精品午夜电影 | 久久婷婷成人综合色 | 亚洲成人一区二区 | 男人都懂的www网站免费观看 | 国产精品一码二码三码在线 | 日本久久www成人免 亚洲成人av | 欧美大粗吊男男1069 | 欧美成人在线网站 | 国产在线精品一区二区三区 | 蜜桃视频精品 | 久久久久久久久综合 | 国产精品一区二区在线看 | 美国av一区二区三区 | 国产精品三级久久久久久电影 | 国产精品91视频 | 9999国产精品| 色av一区 | 色5月婷婷丁香六月 | 精品久久一区二区 | 欧美激情综合色综合啪啪五月 | 国产成人在线看 | 欧美三级电影在线观看 | 夜夜操av| 免费小毛片 | 国产在线拍偷自拍观看视频网站 | 夜夜躁狠狠躁夜躁2021鲁大师 | 国产精品久久久久久久久久久久久久久久 | 日韩中文视频 | 欧美一区成人 | 羞羞视频在线免费 | 成人欧美一区二区三区在线播放 | 国产一区 | 日日躁夜夜操 | 日本精品久久 |