亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 第六章 模式匹配.htm

?? perl5教程
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
        * ? {}</tt></td>
        <td valign="top" width="198"> 出現次數</td>
    </tr>
    <tr>
        <td valign="top" width="157"> <tt>^
        $ \b \B</tt></td>
        <td valign="top" width="198"> 錨</td>
    </tr>
    <tr>
        <td valign="top" width="157"> <tt>|</tt></td>
        <td valign="top" width="198"> 選項</td>
    </tr>
</table>

<br><a name="14、指定模式定界符">14、指定模式定界符</a>
<br>
&nbsp;&nbsp; 缺省的,模式定界符為反斜線/,但其可用字母m自行指定,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; m!/u/jqpublic/perl/prog1!
等價于/\/u\/jqpublic\/perl\/prog1/<br>
&nbsp;&nbsp; 注:當用字母'作為定界符時,不做變量替換;當用特殊字符作為定界符時,其轉義功能或特殊功能即不能使用。<br>
<a name="15、模式次序變量">15、模式次序變量</a>
<br>
&nbsp;&nbsp; 在模式匹配后調用重用部分的結果可用變量$n,全部的結果用變量$&amp;。<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =
&quot;This string contains the number 25.11.&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =~
/-?(\d+)\.?(\d+)/; # 匹配結果為25.11<br>
&nbsp;&nbsp;&nbsp;&nbsp; $integerpart
= $1; # now $integerpart = 25<br>
&nbsp;&nbsp;&nbsp;&nbsp; $decimalpart
= $2; # now $decimalpart = 11<br>
&nbsp;&nbsp;&nbsp;&nbsp; $totalpart =
$&amp;; # now totalpart = 25.11<br>
<a name="四、模式匹配選項">四、模式匹配選項</a>
<br>
</p>

<table border="1" width="50%">
    <tr>
        <td valign="top" width="144"> 選項</td>
        <td valign="top" width="288"> 描述</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>g</tt></td>
        <td valign="top" width="288"> 匹配所有可能的模式</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>i</tt></td>
        <td valign="top" width="288"> 忽略大小寫</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>m</tt></td>
        <td valign="top" width="288"> 將串視為多行</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>o</tt></td>
        <td valign="top" width="288"> 只賦值一次</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>s</tt></td>
        <td valign="top" width="288"> 將串視為單行</td>
    </tr>
    <tr>
        <td valign="top" width="144"> <tt>x</tt></td>
        <td valign="top" width="288"> 忽略模式中的空白</td>
    </tr>
</table>

<br><a name="1、匹配所有可能的模式(g選項)">
1、匹配所有可能的模式(g選項)</a>
<br>
&nbsp;&nbsp; @matches =
&quot;balata&quot; =~ /.a/g; # now @matches = (&quot;ba&quot;,
&quot;la&quot;, &quot;ta&quot;)<br>
&nbsp;&nbsp; 匹配的循環:<br>
&nbsp;&nbsp; while
(&quot;balata&quot; =~ /.a/g) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; $match =
$&amp;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$match\n&quot;);<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; 結果為:<br>
&nbsp;&nbsp;&nbsp;&nbsp; ba<br>
&nbsp;&nbsp;&nbsp;&nbsp; la<br>
&nbsp;&nbsp;&nbsp;&nbsp; ta<br>
&nbsp;&nbsp; 當使用了選項g時,可用函數pos來控制下次匹配的偏移:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $offset =
pos($string);<br>
&nbsp;&nbsp;&nbsp;&nbsp; pos($string)
= $newoffset;<br>
<a name="2、忽略大小寫(i選項)例">
2、忽略大小寫(i選項)例</a>
<br>
&nbsp;&nbsp; /de/i 匹配de,dE,De和DE。<br>
<a name="3、將字符串看作多行(m選項)">
3、將字符串看作多行(m選項)</a>
<br>
&nbsp;&nbsp; 在此情況下,^符號匹配字符串的起始或新的一行的起始;$符號匹配任意行的末尾。<br>
<a name="4、只執行一次變量替換例">
4、只執行一次變量替換例</a>
<br>
&nbsp;&nbsp; $var = 1;<br>
&nbsp;&nbsp; $line = &lt;STDIN&gt;;<br>
&nbsp;&nbsp; while ($var &lt; 10) { <br>
&nbsp;&nbsp;&nbsp;&nbsp; $result =
$line =~ /$var/o;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $line =
&lt;STDIN&gt;; <br>
&nbsp;&nbsp;&nbsp;&nbsp; $var++;<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; 每次均匹配/1/。<br>
<a name="5、將字符串看作單行例">
5、將字符串看作單行例</a>
<br>
&nbsp;&nbsp; /a.*bc/s匹配字符串axxxxx
\nxxxxbc,但/a.*bc/則不匹配該字符串。<br>
<a name="6、在模式中忽略空格">
6、在模式中忽略空格</a>
<br>
&nbsp;&nbsp; /\d{2} ([\W]) \d{2} \1
\d{2}/x等價于/\d{2}([\W])\d{2}\1\d{2}/。<br>
<a name="五、替換操作符">五、替換操作符</a>
<br>
&nbsp;&nbsp; 語法為s/pattern/replacement/,其效果為將字符串中與pattern匹配的部分換成replacement。如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =
&quot;abc123def&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =~
s/123/456/; # now $string = &quot;abc456def&quot;;<br>
&nbsp;&nbsp; 在替換部分可使用模式次序變量$n,如s/(\d+)/[$1]/,但在替換部分不支持模式的特殊字符,如{},*,+等,如s/abc/[def]/將把abc替換為[def]。<br>
&nbsp;&nbsp; 替換操作符的選項如下表:<br>
</p>

<table border="1" width="60%">
    <tr>
        <td valign="top" width="91"> 選項</td>
        <td valign="top" width="499"> 描述</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>g</tt></td>
        <td valign="top" width="499"> 改變模式中的所有匹配</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>i</tt></td>
        <td valign="top" width="499"> 忽略模式中的大小寫</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>e</tt></td>
        <td valign="top" width="499"> 替換字符串作為表達式</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>m</tt></td>
        <td valign="top" width="499"> 將待匹配串視為多行</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>o</tt></td>
        <td valign="top" width="499"> 僅賦值一次</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>s</tt></td>
        <td valign="top" width="499"> 將待匹配串視為單行</td>
    </tr>
    <tr>
        <td valign="top" width="91"> <tt>x</tt></td>
        <td valign="top" width="499"> 忽略模式中的空白</td>
    </tr>
</table>

<p>&nbsp;&nbsp; 注:e選項把替換部分的字符串看作表達式,在替換之前先計算其值,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =
&quot;0abc1&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =~
s/[a-zA-Z]+/$&amp; x 2/e; # now $string = &quot;0abcabc1&quot;<br>
<a name="六、翻譯操作符">六、翻譯操作符</a>
<br>
&nbsp;&nbsp; 這是另一種替換方式,語法如:tr/string1/string2/。同樣,string2為替換部分,但其效果是把string1中的第一個字符替換為string2中的第一個字符,把string1中的第二個字符替換為string2中的第二個字符,依此類推。如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =
&quot;abcdefghicba&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =~
tr/abc/def/; # now string = &quot;defdefghifed&quot;<br>
&nbsp;&nbsp; 當string1比string2長時,其多余字符替換為string2的最后一個字符;當string1中同一個字符出現多次時,將使用第一個替換字符。<br>
&nbsp;&nbsp; 翻譯操作符的選項如下:<br>
</p>

<table border="1" width="80%">
    <tr>
        <td valign="top" width="69"> 選項</td>
        <td valign="top" width="447"> 描述</td>
    </tr>
    <tr>
        <td valign="top" width="69"> <tt>c</tt></td>
        <td valign="top" width="447"> 翻譯所有未指定字符</td>
    </tr>
    <tr>
        <td valign="top" width="69"> <tt>d</tt></td>
        <td valign="top" width="447"> 刪除所有指定字符</td>
    </tr>
    <tr>
        <td valign="top" width="69"> <tt>s</tt></td>
        <td valign="top" width="447"> 把多個相同的輸出字符縮成一個</td>
    </tr>
</table>

<p>&nbsp;&nbsp; 如$string =~ tr/\d/ /c;把所有非數字字符替換為空格。$string
=~ tr/\t //d;刪除tab和空格;&nbsp;
$string =~ tr/0-9/ /cs;把數字間的其它字符替換為一個空格。<br>
<br>
<a name="七、擴展模式匹配">七、擴展模式匹配
</a><br>
&nbsp;&nbsp; PERL支持PERL4和標準UNIX模式匹配操作所沒有的一些模式匹配能力。其語法為:(?&lt;c&gt;pattern),其中c是一個字符,pattern是起作用的模式或子模式。<br>
<a name="1、不存貯括號內的匹配內容">
1、不存貯括號內的匹配內容</a>
<br>
&nbsp;&nbsp; 在PERL的模式中,括號內的子模式將存貯在內存中,此功能即取消存貯該括號內的匹配內容,如/(?:a|b|c)(d|e)f\1/中的\1表示已匹配的d或e,而不是a或b或c。<br>
<a name="2、內嵌模式選項">2、內嵌模式選項</a>
<br>
&nbsp;&nbsp; 通常模式選項置于其后,有四個選項:i、m、s、x可以內嵌使用,語法為:/(?option)pattern/,等價于/pattern/option。<br>
<a name="3、肯定的和否定的預見匹配">
3、肯定的和否定的預見匹配<br>
</a>&nbsp;&nbsp; 肯定的預見匹配語法為/pattern(?=string)/,其意義為匹配后面為string的模式,相反的,(?!string)意義為匹配后面非string的模式,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =
&quot;25abc8&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; $string =~
/abc(?=[0-9])/; <br>
&nbsp;&nbsp;&nbsp;&nbsp; $matched =
$&amp;; # $&amp;為已匹配的模式,此處為abc,而不是abc8<br>
<a name="4、模式注釋">4、模式注釋</a>
<br>
&nbsp;&nbsp; PERL5中可以在模式中用?#來加注釋,如:<br>
&nbsp;&nbsp;&nbsp;&nbsp; if ($string
=~ /(?i)[a-z]{2,3}(?# match two or three alphabetic characters)/
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
</p>
<p align="center"><a href="第五章 文件讀寫 .htm">上一章</a> <a href="第七章 控制結構.htm">下一章</a> <a href="index.htm">目錄</a></p>
<br>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄视频在线观看| 国产不卡免费视频| 国产不卡在线一区| 欧美色综合网站| 亚洲国产电影在线观看| 日韩影院免费视频| 国产美女视频一区| 国产乱一区二区| 欧美精品 国产精品| 18欧美亚洲精品| 国产精品一区免费视频| 欧美人与z0zoxxxx视频| 亚洲日本免费电影| 国产精品99久久久久久有的能看| 在线不卡中文字幕| 亚洲精品成a人| 国产福利一区二区三区视频| 欧美成人乱码一区二区三区| 亚洲制服丝袜av| 色狠狠av一区二区三区| 自拍偷拍亚洲综合| 丁香天五香天堂综合| 久久亚洲免费视频| 国产呦精品一区二区三区网站| 欧美色精品在线视频| 亚洲欧美日韩国产综合在线 | 国产在线一区观看| 欧美一区二区三区在| 香蕉成人啪国产精品视频综合网 | 看电视剧不卡顿的网站| 欧美日韩国产123区| 亚洲乱码国产乱码精品精可以看 | 日韩国产精品大片| 欧美欧美欧美欧美首页| 亚洲一区视频在线观看视频| 91污片在线观看| 成人免费一区二区三区在线观看| 成人国产一区二区三区精品| 国产精品免费aⅴ片在线观看| 国产91丝袜在线播放九色| 国产日产精品一区| 99免费精品在线观看| 国产精品久久久久久久久果冻传媒| 国产毛片一区二区| 国产精品久99| 色婷婷综合五月| 一区二区三区电影在线播| 欧美日韩精品一区二区三区蜜桃 | 中文字幕成人网| 99亚偷拍自图区亚洲| 亚洲欧美另类小说视频| 色综合色综合色综合色综合色综合 | 国产精品久久久久一区| 91亚洲男人天堂| 一区二区三区四区中文字幕| 欧美日韩在线观看一区二区 | 亚洲天堂网中文字| 欧美中文字幕久久| 蜜桃av噜噜一区| 久久久精品2019中文字幕之3| 成人激情校园春色| 亚洲国产精品人人做人人爽| 欧美一区二区三区白人| 国产精品影音先锋| 亚洲激情图片小说视频| 91精品国产品国语在线不卡| 国产精品中文字幕欧美| 一区二区久久久| 精品日韩欧美一区二区| 欧美日韩精品一区二区| 日韩精品专区在线| 久久丁香综合五月国产三级网站| 99久久99久久综合| 日韩成人dvd| 亚洲欧美日韩系列| 强制捆绑调教一区二区| 国产女主播在线一区二区| 欧美日韩精品一区二区在线播放| 精品亚洲免费视频| 亚洲一区二区欧美激情| 久久影音资源网| 欧美三片在线视频观看| 国产盗摄一区二区三区| 午夜电影网亚洲视频| 最新日韩在线视频| 欧美喷潮久久久xxxxx| 99久久久精品免费观看国产蜜| 午夜久久久久久久久久一区二区| 亚洲精品一区二区三区99| 色婷婷av一区二区三区大白胸 | 国产白丝网站精品污在线入口| 樱花草国产18久久久久| 97久久久精品综合88久久| 亚洲国产成人91porn| 中文字幕精品—区二区四季| 日韩一区二区在线播放| 在线视频一区二区三| 粉嫩一区二区三区在线看| 免费欧美高清视频| 亚洲网友自拍偷拍| 日韩理论片在线| 久久久精品黄色| 欧美xxxxx牲另类人与| 欧美日韩免费不卡视频一区二区三区| 99久久精品国产精品久久| 国产91精品免费| 韩国欧美国产1区| 日韩福利电影在线| 亚洲bdsm女犯bdsm网站| 一区二区国产视频| 一区二区三区美女视频| 亚洲激情自拍偷拍| 亚洲精品免费播放| 洋洋成人永久网站入口| 亚洲国产视频直播| 懂色av中文字幕一区二区三区| 精品欧美黑人一区二区三区| 色综合天天视频在线观看| 99久久精品国产一区| 色综合久久久久久久| 91日韩一区二区三区| 99久久99久久久精品齐齐| 91在线精品一区二区| 99国产精品久久| 99久久婷婷国产精品综合| 91玉足脚交白嫩脚丫在线播放| 97se亚洲国产综合在线| 欧美性高清videossexo| 欧美日韩aaa| 精品欧美乱码久久久久久1区2区| 精品美女一区二区| 国产精品每日更新| 亚洲精品你懂的| 日韩av成人高清| 国产伦精一区二区三区| 国产suv精品一区二区三区| 99re在线视频这里只有精品| 欧美在线播放高清精品| 欧美一区二区视频网站| 激情综合色丁香一区二区| 亚洲已满18点击进入久久| 日韩欧美国产一区二区三区| 在线一区二区视频| 在线播放日韩导航| 欧美精品一区二区三区蜜桃| 国产偷v国产偷v亚洲高清| 一区二区三区美女| 精品影视av免费| av在线不卡免费看| 欧美日韩一区不卡| 欧美精品一区二区三| 亚洲欧洲av色图| 婷婷国产v国产偷v亚洲高清| 韩国三级电影一区二区| 91电影在线观看| 精品国免费一区二区三区| 亚洲欧美怡红院| 裸体歌舞表演一区二区| 不卡的看片网站| 日韩亚洲欧美成人一区| 亚洲欧美另类图片小说| 狠狠色伊人亚洲综合成人| 日本韩国欧美一区二区三区| 精品久久久久久久久久久久久久久久久 | 国产老妇另类xxxxx| 日韩一区二区三区视频在线 | 亚洲小说春色综合另类电影| 欧洲人成人精品| 久久成人免费日本黄色| 欧美国产精品中文字幕| 欧美v亚洲v综合ⅴ国产v| 激情成人综合网| 亚洲另类春色校园小说| 欧美一区二区视频在线观看2020 | 日本午夜精品视频在线观看| 午夜伦欧美伦电影理论片| 国产传媒日韩欧美成人| 欧美老肥妇做.爰bbww视频| 中文字幕在线视频一区| 九九**精品视频免费播放| 欧美日韩免费电影| 一色屋精品亚洲香蕉网站| 国产在线不卡一区| 日韩欧美在线1卡| 亚洲一区在线电影| 色综合久久久网| 亚洲同性gay激情无套| 成人自拍视频在线观看| 日韩女优av电影在线观看| 免费观看一级特黄欧美大片| 欧美日韩一区二区三区在线| 中文字幕一区二区三区蜜月| 韩国av一区二区| 精品免费一区二区三区| 精品一区二区免费| 日韩一区二区免费在线观看| 五月天一区二区三区| 欧美在线色视频| 夜夜爽夜夜爽精品视频| 亚洲色图制服诱惑 |