麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

使用Perl常規(guī)表達(dá)式進(jìn)行匹配

2019-11-17 04:24:17
字體:
供稿:網(wǎng)友

長期以來,Perl以其對常規(guī)表達(dá)式的固有支持,一直是非常流行的文本處理工具。在這篇入門性文章中,我們將帶領(lǐng)你簡單了解如何在你自己的程序中使用常規(guī)表達(dá)式,實(shí)現(xiàn)更加強(qiáng)大的文本搜索和替代功能。

我們首先了解最簡單的常規(guī)表達(dá)式:匹配。如果在字符串中找到相匹配的模式,匹配操作就返回真值。因此下面的表達(dá)式:

$string =~ m/text/


只有在變量“$string”中的字符串包含子字符串“text”時才返回真值。這是最基本的常規(guī)表達(dá)式,它對每個字符進(jìn)行逐字匹配。當(dāng)然,這只是對常規(guī)表達(dá)式作用的一個嘗試。以需要查找以“ext”結(jié)尾的四個字母的單詞為例。為達(dá)到這個目的,我們使用一個特殊的字符“.”,常規(guī)表達(dá)式中的句號告訴Perl匹配其中的任何單獨(dú)的字符。因此下面這個表達(dá)式:

$string =~ m/.ext/

將與單詞“text”和“next”匹配。

不過,這個表達(dá)式并非完美,因?yàn)樗c包含“ext”的更長單詞的一部分相匹配,如“dextrous”和“flextime”。我們可以使用錨字符來限制匹配的位置。“^”字符匹配字符串的開頭,因此:

$string =~ m/^.ext/

與“dextrous”匹配,但不與“context”匹配。

同樣,“$”字符匹配字符串的結(jié)尾:

$string =~ m/.ext$/

與“context”匹配,但不與“dextrous”匹配。

如果你只希望匹配以“ext”結(jié)尾的四個字母的字符串,那么你可以組合使用上面的兩個表達(dá)式,像這樣:

$string =~ m/^.ext$/

現(xiàn)在,如果你需要匹配一組給定的字符,而不是句號位置的任何字符,那該怎么辦呢?常規(guī)表達(dá)式通過使用方括號提供一個方法。以下面的表達(dá)式為例:

$string =~ m/^[tT]ext$/

這個表達(dá)式只與單詞“text”和“Text”匹配。一對方括號將轉(zhuǎn)換其中的任何單個字符。這個功能相當(dāng)強(qiáng)大,例如:

$string =~ m/[aeiouAEIOU]/

如果$string變量中含有元音,則上面的例子返回真值。

如果括號中的第一個字符是“^”,這時它就不是一個錨字符,而是執(zhí)行“非”操作,匹配不在括號內(nèi)的任意字符,因此如果$string變量中只包含輔音或標(biāo)點(diǎn)符號,可以對上面的例子進(jìn)行調(diào)整,使它返回真值:

$string =~ m/[^aeiouAEIOU]/

方括號符號還可以指定字符的范圍,讓你不必列舉一整串連續(xù)的數(shù)字或字母,例如,下面的例子匹配任何小寫字母:

$string =~ m/[a-z]/

到現(xiàn)在為止,我們每次都是處理字符串中的一個字符,但許多情況下我們需要處理更加復(fù)雜的問題。我們使用“|”或分段操作達(dá)到這個目的。假設(shè)我們希望檢查$string變量中是否含有“next”或“PRevious”,我們可以使用下面的表達(dá)式:

$string =~ m/next|previous/

如果我們希望在這個表達(dá)式中使用錨字符,那么我們需要將選項(xiàng)組合起來,就像在算術(shù)中使用圓括號那樣。因此,如果我們希望只匹配字符串開頭部分的“next”或“previous”,可以這樣寫表達(dá)式:

$string =~ m/^(next|previous)/


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

圖片精選

主站蜘蛛池模板: 91久久久国产精品 | 国产日韩中文字幕 | 在线影院av| 日韩一级精品 | 91香蕉国产亚洲一区二区三区 | 黄色免费高清网站 | 免费a级网站 | 中文字幕www | 91精品国产777在线观看 | 91美女视频在线 | 杏美月av | 免费国产在线观看 | 日本精品久久久一区二区三区 | 久久久久久久久久亚洲精品 | 欧美 国产 综合 | 免费a级片在线观看 | 一级做a爰性色毛片免费1 | 国产一区免费观看 | 日本中文一级片 | 青青草华人在线 | av在线等 | 一级做受大片免费视频 | arabxxxxvideos| 亚洲免费永久 | 在线看成人av | av电影在线观看网站 | 欧美日韩视频在线播放 | 中文黄色一级片 | 91av亚洲 | 免费a级网站 | 欧美精品一区二区久久 | 日韩午夜片 | 亚洲视频在线免费看 | 成人午夜在线免费观看 | 久久国产亚洲视频 | 久久国产精品久久久久久久久久 | 97中文字幕第一一一页 | 欧美69free性videos | 成年人免费黄色片 | 亚洲成人国产综合 | 黄色片在线免费播放 |