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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? perl6.htm

?? perl入門
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl教程之 模式匹配</title>
</head>
<body>
<br>
<p align="center">第六章 模式匹配<br></p>


<a href="#一、簡介">一、簡介</a><br>
<a href="#二、匹配操作符">二、匹配操作符</a><br>
<a href="#三、模式中的特殊字符">三、模式中的特殊字符</a><br>
&nbsp;&nbsp;<a href="#1、字符 +">1、字符+</a><br>
&nbsp;&nbsp;<a href="#2、字符 []和[^]">2、字符 []和[^]</a><br>
&nbsp;&nbsp;<a href="#3、字符 *和?">3、字符 *和?</a><br>
&nbsp;&nbsp;<a href="#4、轉(zhuǎn)義字符">4、轉(zhuǎn)義字符</a><br>
&nbsp;&nbsp;<a href="#5、匹配任意字母或數(shù)字">5、匹配任意字母或數(shù)字</a><br>
&nbsp;&nbsp;<a href="#6、錨模式">6、錨模式</a><br>
&nbsp;&nbsp;<a href="#7、模式中的變量替換">7、模式中的變量替換</a><br>
&nbsp;&nbsp;<a href="#8、字符范圍轉(zhuǎn)義前綴">8、字符范圍轉(zhuǎn)義前綴</a><br>
&nbsp;&nbsp;<a href="#9、匹配任意字符">9、匹配任意字符</a><br>
&nbsp;&nbsp;<a href="#10、匹配指定數(shù)目的字符">10、匹配指定數(shù)目的字符</a><br>
&nbsp;&nbsp;<a href="#11、指定選項">11、指定選項</a><br>
&nbsp;&nbsp;<a href="#12、模式的部分重用">12、模式的部分重用</a><br>
&nbsp;&nbsp;<a href="#13、轉(zhuǎn)義和特定字符的執(zhí)行次序">13、轉(zhuǎn)義和特定字符的執(zhí)行次序</a><br>
&nbsp;&nbsp;<a href="#14、指定模式定界符">14、指定模式定界符</a><br>
&nbsp;&nbsp;<a href="#15、模式次序變量">15、模式次序變量</a><br>
<a href="#四、模式匹配選項">四、模式匹配選項</a><br>
&nbsp;&nbsp;<a href="#1、匹配所有可能的模式(g選項)">1、匹配所有可能的模式(g選項)</a><br>
&nbsp;&nbsp;<a href="#2、忽略大小寫(i選項)例">2、忽略大小寫(i選項)例</a><br>
&nbsp;&nbsp;<a href="#3、將字符串看作多行(m選項)">3、將字符串看作多行(m選項)</a><br>
&nbsp;&nbsp;<a href="#4、只執(zhí)行一次變量替換例">4、只執(zhí)行一次變量替換例</a><br>
&nbsp;&nbsp;<a href="#5、將字符串看作單行例">5、將字符串看作單行例</a><br>
&nbsp;&nbsp;<a href="#6、在模式中忽略空格">6、在模式中忽略空格</a><br>
<a href="#五、替換操作符">五、替換操作符</a><br>
<a href="#六、翻譯操作符">六、翻譯操作符</a><br>
<a href="#七、擴展模式匹配">七、擴展模式匹配</a><br>
&nbsp;&nbsp;<a href="#1、不存貯括號內(nèi)的匹配內(nèi)容">1、不存貯括號內(nèi)的匹配內(nèi)容</a><br>
&nbsp;&nbsp;<a href="#2、內(nèi)嵌模式選項">2、內(nèi)嵌模式選項</a><br>
&nbsp;&nbsp;<a href="#3、肯定的和否定的預見匹配">3、肯定的和否定的預見匹配</a><br>
&nbsp;&nbsp;<a href="#4、模式注釋">4、模式注釋</a><br>

<br><br><a name="一、簡介">一、簡介<br></a>
&nbsp;&nbsp; 模式指在字符串中尋找的特定序列的字符,由反斜線包含:/def/即模式def。其用法如結(jié)合函數(shù)split將字符串用某模式分成多個單詞:@array
= split(/ /, $line);<br>
<a name="二、匹配操作符">二、匹配操作符</a>
  =~、!~<br>
&nbsp;&nbsp; =~檢驗匹配是否成功:$result
= $var =~ /abc/;若在該字符串中找到了該模式,則返回非零值,即true,不匹配則返回0,即false。!~則相反。<br>
&nbsp;&nbsp; 這兩個操作符適于條件控制中,如:<br>
&nbsp;&nbsp; if ($question =~
/please/) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;Thank you for being polite!\n&quot;);<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;That was not very polite!\n&quot;);<br>
&nbsp;&nbsp; }
<br>
<a name="三、模式中的特殊字符">
三、模式中的特殊字符</a>
<br>
&nbsp;&nbsp; PERL在模式中支持一些特殊字符,可以起到一些特殊的作用。<br>
<a name="1、字符 +">1、字符 +</a>
<br>
&nbsp;&nbsp; +意味著一個或多個相同的字符,如:/de+f/指def、deef、deeeeef等。它盡量匹配盡可能多的相同字符,如/ab+/在字符串a(chǎn)bbc中匹配的將是abb,而不是ab。<br>
&nbsp;&nbsp; 當一行中各單詞間的空格多于一個時,可以如下分割:<br>
&nbsp;&nbsp;&nbsp;&nbsp; @array =
split (/ +/, $line);<br>
&nbsp;&nbsp; 注:split函數(shù)每次遇到分割模式,總是開始一個新單詞,因此若$line以空格打頭,則@array的第一個元素即為空元素。但其可以區(qū)分是否真有單詞,如若$line中只有空格,則@array則為空數(shù)組。且上例中TAB字符被當作一個單詞。注意修正。
<br>
<a name="2、字符 []和[^]">2、字符
[]和[^]</a><br>
&nbsp;&nbsp; []意味著匹配一組字符中的一個,如/a[0123456789]c/將匹配a加數(shù)字加c的字符串。與+聯(lián)合使用例:/d[eE]+f/匹配def、dEf、deef、dEdf、dEEEeeeEef等。^表示除其之外的所有字符,如:/d[^deE]f/匹配d加非e字符加f的字符串。<br>
<a name="3、字符 *和?">3、字符
*和? </a><br>
&nbsp;&nbsp; 它們與+類似,區(qū)別在于*匹配0個、1個或多個相同字符,?匹配0個或1個該字符。如/de*f/匹配df、def、deeeef等;/de?f/匹配df或def。<br>
<a name="4、轉(zhuǎn)義字符">4、轉(zhuǎn)義字符</a>
<br>
&nbsp;&nbsp; 如果你想在模式中包含通常被看作特殊意義的字符,須在其前加斜線&quot;\&quot;。如:/\*+/中\(zhòng)*即表示字符*,而不是上面提到的一個或多個字符的含義。斜線的表示為/\\/。在PERL5中可用字符對\Q和\E來轉(zhuǎn)義。<br>
<a name="5、匹配任意字母或數(shù)字">
5、匹配任意字母或數(shù)字</a>
<br>
&nbsp;&nbsp; 上面提到模式/a[0123456789]c/匹配字母a加任意數(shù)字加c的字符串,另一種表示方法為:/a[0-9]c/,類似的,[a-z]表示任意小寫字母,[A-Z]表示任意大寫字母。任意大小寫字母、數(shù)字的表示方法為:/[0-9a-zA-Z]/。<br>
<a name="6、錨模式">6、錨模式</a>
<br>
</p>

<table border="1" width="50%">
    <tr>
        <td valign="top" width="115"> <b>錨</b></td>
        <td valign="top" width="264"> <b>描述</b></td>
    </tr>
    <tr>
        <td valign="top" width="115"> <tt>^</tt>
        或 <tt>\A</tt></td>
        <td valign="top" width="264"> 僅匹配串首
        </td>
    </tr>
    <tr>
        <td valign="top" width="115"> <tt>$</tt>
        或 <tt>\Z</tt></td>
        <td valign="top" width="264"> 僅匹配串尾</td>
    </tr>
    <tr>
        <td valign="top" width="115"> <tt>\b</tt></td>
        <td valign="top" width="264"> 匹配單詞邊界</td>
    </tr>
    <tr>
        <td valign="top" width="115"> <tt>\B</tt></td>
        <td valign="top" width="264"> 單詞內(nèi)部匹配</td>
    </tr>
</table>

<p>&nbsp;&nbsp; 例1:/^def/只匹配以def打頭的字符串,/$def/只匹配以def結(jié)尾的字符串,結(jié)合起來的/^def$/只匹配字符串def(?)。\A和\Z在多行匹配時與^和$不同。<br>
&nbsp;&nbsp; 例2:檢驗變量名的類型:<br>
&nbsp;&nbsp;&nbsp;&nbsp; if ($varname
=~ /^\$[A-Za-z][_0-9a-zA-Z]*$/) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$varname is a legal scalar variable\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } elsif
($varname =~ /^@[A-Za-z][_0-9a-zA-Z]*$/) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$varname is a legal array variable\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } elsif
($varname =~ /^[A-Za-z][_0-9a-zA-Z]*$/) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$varname is a legal file variable\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;I don't understand what $varname is.\n&quot;);<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp; 例3:\b在單詞邊界匹配:/\bdef/匹配def和defghi等以def打頭的單詞,但不匹配abcdef。/def\b/匹配def和abcdef等以def結(jié)尾的單詞,但不匹配defghi,/\bdef\b/只匹配字符串def。注意:/\bdef/可匹配$defghi,因為$并不被看作是單詞的部分。<br>
&nbsp;&nbsp; 例4:\B在單詞內(nèi)部匹配:/\Bdef/匹配abcdef等,但不匹配def;/def\B/匹配defghi等;/\Bdef\B/匹配cdefg、abcdefghi等,但不匹配def,defghi,abcdef。<br>
<a name="7、模式中的變量替換">
7、模式中的變量替換</a>
<br>
&nbsp;&nbsp; 將句子分成單詞:<br>
&nbsp;&nbsp;&nbsp;&nbsp; $pattern =
&quot;[\\t ]+&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp; @words =
split(/$pattern/, $line);<br>
<a name="8、字符范圍轉(zhuǎn)義前綴">
8、字符范圍轉(zhuǎn)義</a>
<br>
</p>

<table border="1" width="80%">
    <tr>
        <td valign="top" width="135"><b>E</b>
        轉(zhuǎn)義字符</td>
        <td valign="top" width="228"> 描述</td>
        <td valign="top" width="147"> 范圍</td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\d</tt></td>
        <td valign="top" width="228"> 任意數(shù)字</td>
        <td valign="top" width="147"> <tt>[0-9]</tt></td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\D</tt></td>
        <td valign="top" width="228"> 除數(shù)字外的任意字符
        </td>
        <td valign="top" width="147"> <tt>[^0-9]</tt></td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\w</tt></td>
        <td valign="top" width="228"> 任意單詞字符</td>
        <td valign="top" width="147"> <tt>[_0-9a-zA-Z]</tt></td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\W</tt></td>
        <td valign="top" width="228"> 任意非單詞字符</td>
        <td valign="top" width="147"> <tt>[^_0-9a-zA-Z]</tt></td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\s</tt></td>
        <td valign="top" width="228"> 空白</td>
        <td valign="top" width="147"> [
        \r\t\n\f]</td>
    </tr>
    <tr>
        <td valign="top" width="135"> <tt>\S</tt></td>
        <td valign="top" width="228"> 非空白</td>
        <td valign="top" width="147"> <tt>[^
        \r\t\n\f]</tt></td>
    </tr>
</table>

<p>&nbsp;&nbsp; 例:/[\da-z]/匹配任意數(shù)字或小寫字母。<br>
<a name="9、匹配任意字符">9、匹配任意字符</a>
<br>
&nbsp;&nbsp; 字符&quot;.&quot;匹配除換行外的所有字符,通常與*合用。<br>
<a name="10、匹配指定數(shù)目的字符">
10、匹配指定數(shù)目的字符</a>
<br>
&nbsp;&nbsp; 字符對{}指定所匹配字符的出現(xiàn)次數(shù)。如:/de{1,3}f/匹配def,deef和deeef;/de{3}f/匹配deeef;/de{3,}f/匹配不少于3個e在d和f之間;/de{0,3}f/匹配不多于3個e在d和f之間。<br>
<a name="11、指定選項">11、指定選項</a>
<br>
&nbsp;&nbsp; 字符&quot;|&quot;指定兩個或多個選擇來匹配模式。如:/def|ghi/匹配def或ghi。<br>
&nbsp;&nbsp; 例:檢驗數(shù)字表示合法性<br>
&nbsp;&nbsp; if ($number =~
/^-?\d+$|^-?0[xX][\da-fa-F]+$/) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$number is a legal integer.\n&quot;);<br>
&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp; print
(&quot;$number is not a legal integer.\n&quot;);<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; 其中 ^-?\d+$
匹配十進制數(shù)字,^-?0[xX][\da-fa-F]+$
匹配十六進制數(shù)字。<br>
<a name="12、模式的部分重用">12、模式的部分重用</a>
<br>
&nbsp;&nbsp; 當模式中匹配相同的部分出現(xiàn)多次時,可用括號括起來,用\n來多次引用,以簡化表達式:<br>
/\d{2}([\W])\d{2}\1\d{2}/ 匹配:<br>
&nbsp;&nbsp;&nbsp;&nbsp; 12-05-92<br>
&nbsp;&nbsp;&nbsp;&nbsp; 26.11.87<br>
&nbsp;&nbsp;&nbsp;&nbsp; 07 04 92等<br>
&nbsp;&nbsp; 注意:/\d{2}([\W])\d{2}\1\d{2}/
不同于/(\d{2})([\W])\1\2\1/ ,后者只匹配形如17-17-17的字符串,而不匹配17-05-91等。<br>
<a name="13、轉(zhuǎn)義和特定字符的執(zhí)行次序">
13、轉(zhuǎn)義和特定字符的執(zhí)行次序</a>
<br>
&nbsp;&nbsp; 象操作符一樣,轉(zhuǎn)義和特定字符也有執(zhí)行次序:<br>
</p>

<table border="1" width="50%">
    <tr>
        <td valign="top" width="157"> 特殊字符</td>
        <td valign="top" width="198"> 描述</td>
    </tr>
    <tr>
        <td valign="top" width="157"> <tt>()</tt></td>
        <td valign="top" width="198"> 模式內(nèi)存</td>
    </tr>
    <tr>
        <td valign="top" width="157"> <tt>+
        * ? {}</tt></td>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品在线播放| 偷拍与自拍一区| 欧美成人福利视频| 欧美顶级少妇做爰| 欧美一级高清片在线观看| 在线播放中文一区| 欧美不卡一区二区三区四区| 26uuu欧美日本| 日本一区二区成人| 一区二区三区资源| 亚洲va韩国va欧美va精品| 午夜精品在线视频一区| 看电影不卡的网站| 国产一本一道久久香蕉| 99久久久精品免费观看国产蜜| 精品系列免费在线观看| 久久精品国产在热久久| 粉嫩欧美一区二区三区高清影视 | 国产河南妇女毛片精品久久久| 欧美刺激脚交jootjob| 欧美变态tickling挠脚心| 久久蜜桃一区二区| 1000部国产精品成人观看| 亚洲成人av一区| 国产一区二区调教| 日本久久电影网| 日韩欧美精品在线视频| 国产日韩成人精品| 一个色妞综合视频在线观看| 日本网站在线观看一区二区三区| 国产精品萝li| 亚洲成人精品影院| 国产91精品精华液一区二区三区 | 欧美图区在线视频| 精品国产免费久久| 1区2区3区精品视频| 亚洲电影视频在线| 大尺度一区二区| 日韩一区二区免费在线观看| 国产精品视频一二三区 | 一本高清dvd不卡在线观看| 精品视频一区三区九区| 久久亚洲二区三区| 亚洲成av人片| 99久久精品免费看| 久久久久久影视| 丝袜美腿一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲婷婷综合色高清在线| 午夜不卡在线视频| 99久久久精品| 国产女人18毛片水真多成人如厕| 欧美一区中文字幕| 国产精品欧美一区喷水| 狠狠色丁香婷婷综合久久片| 欧美久久久久久久久久| 亚洲欧美激情小说另类| 成人午夜精品在线| 久久日韩粉嫩一区二区三区 | 欧美日韩你懂得| 亚洲人妖av一区二区| 精品亚洲成a人| 欧美xxxxxxxx| 免费观看一级特黄欧美大片| 在线播放/欧美激情| 亚洲国产日韩在线一区模特| 在线日韩一区二区| 亚洲乱码国产乱码精品精98午夜| 亚洲乱码精品一二三四区日韩在线| 亚洲日穴在线视频| 成人免费看黄yyy456| 欧美国产一区二区| 丁香婷婷综合激情五月色| 国产婷婷色一区二区三区| 国产成人亚洲精品狼色在线 | 91国内精品野花午夜精品| 一区免费观看视频| 91丨九色porny丨蝌蚪| 亚洲国产精品99久久久久久久久| 亚洲人成网站精品片在线观看| 亚洲尤物在线视频观看| 在线观看日韩av先锋影音电影院| 亚洲精品乱码久久久久久黑人 | 欧美精品一区视频| 精品一区二区三区在线播放 | 亚洲激情在线播放| 欧美性大战xxxxx久久久| 香蕉成人伊视频在线观看| 欧美精品日韩一本| 麻豆国产一区二区| 久久综合九色欧美综合狠狠| 国产高清不卡一区| 亚洲女人****多毛耸耸8| 色香蕉久久蜜桃| 日韩精品成人一区二区在线| 精品久久久久久无| voyeur盗摄精品| 亚洲va韩国va欧美va精品| 日韩欧美在线影院| 成人午夜视频免费看| 午夜精品一区二区三区三上悠亚| 国产精品自拍毛片| 亚洲欧美视频一区| 日韩西西人体444www| 国产精品99久久久久| 亚洲天堂中文字幕| 日韩欧美黄色影院| 成人深夜福利app| 午夜视黄欧洲亚洲| 国产精品久久午夜| 69p69国产精品| 成人ar影院免费观看视频| 午夜影视日本亚洲欧洲精品| 国产欧美va欧美不卡在线| 欧美日韩aaa| 波多野结衣精品在线| 日本成人在线网站| 亚洲欧美日韩国产另类专区| 日韩欧美综合在线| 欧美在线视频日韩| 国产不卡一区视频| 婷婷综合另类小说色区| 国产精品久久久久天堂| 精品电影一区二区| 欧美日韩精品专区| 99精品国产热久久91蜜凸| 日韩国产欧美在线视频| 最新中文字幕一区二区三区| 久久综合久久鬼色中文字| 欧美精选一区二区| 欧美吞精做爰啪啪高潮| 色综合天天综合| 成人亚洲一区二区一| 国产一区二区不卡在线| 九九**精品视频免费播放| 亚洲成人av电影在线| 亚洲精选视频在线| 国产精品久久久久久久久久免费看| 国产一区二区剧情av在线| 日本va欧美va欧美va精品| 亚洲高清在线视频| 亚洲一区二区在线观看视频| 亚洲欧美另类图片小说| 国产精品传媒入口麻豆| 中文在线免费一区三区高中清不卡| 国产一区999| 国产精品99久久久久久久女警 | 成人在线视频首页| 狠狠久久亚洲欧美| 久久99最新地址| 国产一区二区在线免费观看| 激情综合色丁香一区二区| 精品一区二区久久| 狠狠色丁香久久婷婷综合丁香| 国产欧美精品一区二区色综合朱莉 | 中文字幕免费不卡在线| 国产视频911| 亚洲色图欧洲色图| 亚洲欧美区自拍先锋| 亚洲视频免费在线| 亚洲乱码国产乱码精品精可以看| 91麻豆精品国产自产在线| 91久久精品网| 欧美美女黄视频| 欧美成人艳星乳罩| 国产精品污网站| 亚洲精品你懂的| 天天综合色天天综合色h| 美女国产一区二区| 国产.精品.日韩.另类.中文.在线.播放| 国产精品欧美久久久久无广告 | 日韩女优av电影在线观看| 日韩一区二区三区视频在线观看| 国产成人高清在线| 色婷婷久久久亚洲一区二区三区| 日本午夜精品一区二区三区电影| 日本一区二区成人在线| 亚洲乱码国产乱码精品精98午夜| 91精品国产丝袜白色高跟鞋| 久久人人爽爽爽人久久久| 亚洲色图一区二区| 理论电影国产精品| 国产精品一区在线| 在线看日韩精品电影| 日韩欧美三级在线| 中文字幕综合网| 蜜桃av一区二区三区电影| 99国产精品视频免费观看| 欧美一区二区三区在| 中文字幕一区在线观看| 青草av.久久免费一区| 不卡区在线中文字幕| 91精品国产乱| 专区另类欧美日韩| 国产美女久久久久| 欧美精品1区2区3区| 18欧美亚洲精品| 国产一区二区不卡| 91精品在线观看入口| **性色生活片久久毛片|