日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

学习“Perl基础教程:正则表达式”之摘录

發(fā)布時(shí)間:2024/1/23 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习“Perl基础教程:正则表达式”之摘录 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.

? ? =~ 將正則式去匹配字符串,生成的結(jié)果是,如果正則式在字體串獲得了匹配,值為真;否則,值為假。

2.? 默認(rèn)的分隔符//也可以用'm'加任意字符代替:

? ? ?"Hello World" =~ m!World!;? ?#matches, delimited by '!'

? ? ?"Hello World" =~ m{World};? ?#matches, note the matching '{}'

? ? ?"/usr/bin/perl" =~ m"/perl";? ?#matches after '/usr/bin', '/' becomes an ordinary char

3.正則表達(dá)式區(qū)分大小寫(xiě),正則式對(duì)空格敏感

4.如果正則式在字符串的多個(gè)位置都匹配,Perl首先匹配的是字符串的第一個(gè)位置。

5.不是所有的字符都能用在正則式去匹配,如下的元字符就是:

{}[]()^$.|*+?\

要匹配這些元字符,需要在元字符前使用反斜杠"\"做轉(zhuǎn)義

"2+2=4" =~ /2+2/; #doesn't match, + is a metacharacter "2+2=4" =~ /2\+2/; #matches, \+ is treated like an ordinary +

? 6.匹配式中有變量時(shí),變量的值會(huì)先擴(kuò)展,再進(jìn)行匹配

? 7.^:在字符串的開(kāi)始處匹配;? ? ? $:在字符串的結(jié)尾處匹配;? ? ??

? ? ?^和$還可以同時(shí)用,結(jié)果是正則式完全匹配整個(gè)字符串

? 8.字符類,表示可能字符的集合,而不是一個(gè)字符。字符類使用方括號(hào)[...]來(lái)表示

? 9.'i':對(duì)于不區(qū)分大小寫(xiě)的匹配,可以在正則式中添加修飾符'i'。

? 10.'-':字符類中的范圍操作符;? ? ? ? ? ? 如果'-'是字符類的第一個(gè)或最后一個(gè)字符,則它表示原義,不是范圍操作符。

? 11.\d: 匹配數(shù)字,包括[0-9],以及非羅馬數(shù)字;

? ? ? ?\s: 匹配空格,包括[\ \t\r\n\f]等;

? ? ? ?\w:匹配一個(gè)單詞

? ? ? ?\D:\d的反字符類,表示數(shù)字外的其他字符

? ? ? ?\S:\s的反字符類,表示任何非空格的字符

? ? ? ?\W:\w的反字符類,表示任何非單詞的字符

? ? ? ?'.': '.'表示匹配除"\n"(換行符)外的任何字符。但使用了//s時(shí)不起作用

? ? ? ?\N:和'.'類似,匹配除換行符外的任何字符,和//s起不起作用無(wú)關(guān)。

? 12./\d\d:\d\d:\d\d/? ? ?匹配hh:mm:ss時(shí)間格式

? ? ? ?/[\d\s]? ? ?匹配任意數(shù)字或空格

? ? ? ?/\w\W\w/;? ?匹配單詞,非單詞,單詞模式

? ? ? ?/..rt/;? ? ? ?匹配兩個(gè)字母后跟著'rt'

? ? ? ?/end\./;? ? 匹配'end.'

? ? ? ?/end[.]/;? ? 匹配'end.'

? 13.(//): no modifiers

? ? ? ?(//s): s modifier

? ? ? ? ? ? ? ? 將字符串視為單一的長(zhǎng)行

? ? ? ? ? ? ? ? '.'? 包括"\n"的任意字符? ? ? ? ? ? ? ?^ 一行字符串的開(kāi)始? ? ?$ 一行字符串的結(jié)尾

? ? ? ? (//m): m modifier

? ? ? ? ? ? ? ? 將字符串視為多行的集合? ??

? ? ? ? ? ? ? ? '.' 除"\n"外的任意字符? ? ? ? ? ? ? ? ?^ 字符串內(nèi)任意行的開(kāi)始? ?$ 字符串內(nèi)任意行的結(jié)尾

? ? ? ? (//sm): both s and m modifiers

? ? ? ? ? ? ? ? ?將字符串視為單一長(zhǎng)行,但進(jìn)行多檢測(cè)

? ? ? ? ? ? ? ? ?'.' 包含"\n"的任意字符? ? ? ? ? ? ? ? ? ^ 字符串內(nèi)任意行的開(kāi)始? ? $ 字符串內(nèi)任意行的結(jié)尾

? 14.在使用//m時(shí),還可以使用錨符號(hào):

? ? ? ?\A:匹配字符串的開(kāi)始? ? ? ? \Z:匹配字符串的結(jié)尾,包括換行符? ? ?\z:僅匹配字符串的結(jié)尾

? 15.|? :單詞或字符串的選擇元字符

? 16.() :分組元字符,可以將正則式的部分作為一個(gè)單元

? ?17. 分組元字符()還有另一個(gè)功能:

? ? ? ? ? 將匹配的字符才能夠字符串中提取出來(lái)。

? 18.$+ 指最高序號(hào)的變量

? 19.Perl除了提供匹配內(nèi)容外,還通過(guò)數(shù)組@-和@+提供的匹配的位置信息:

? ? ? $-[0] : 整個(gè)匹配結(jié)果在字符串中的起始位置

? ? ? $-[n] : 第$n個(gè)匹配結(jié)果在字符串中的起始位置

? ? ? $+[0] : 整個(gè)匹配結(jié)果在字符串中的結(jié)束位置

? ? ? $+[n] : 第$n個(gè)匹配結(jié)果在字符串中的結(jié)束位置

? 20.?:匹配一次或零次;

? ? ? ? * : 匹配零次或任意次

? ? ? ? + : 匹配以此或任意次;

? ? ? ? ?{} : 匹配指定的次數(shù)

? ?21.

? ? ? ? a?? means: match 'a' 0 or 1 times. Try 0 first, then 1.

? ? ? ? a*? means: match 'a' 0 or more times, i.e., any number of times, but as few times as possible

? ? ? ? a+? means: match 'a' 1 or more times, i.e.,at least once, but as few times as possible.

? ? ? ? a{n,m} means: match at least n times, not more than m times, as few times as possible.

? ? ? ? a{n,}? means: match at lease n times, but as few times as possible

? ? ? ? a{n}?means:match exactly n times.Becase we match exactly n times,a{n}? is equivalent to a{n} and is just there for notainal consistency.

? ?22. g 和 pos()一起配合使用,能搜索整個(gè)文本

? ?23. 搜索替換的語(yǔ)法:? s/regexp/replacement/modifiers

? ?24.\l:將下一字符轉(zhuǎn)換成小寫(xiě)? ? ? ? \u:將下個(gè)字符轉(zhuǎn)換成大寫(xiě)

總結(jié)

以上是生活随笔為你收集整理的学习“Perl基础教程:正则表达式”之摘录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。