亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

正則表達式教程之模式修正符使用介紹

2020-03-16 21:09:30
字體:
來源:轉載
供稿:網友
式修正符就是幾個字母,我們在每個正則表達式中可以一次使用一個,也可以連續使用多個,每一個具一定的意義
 
 
之前我們給大家介紹了正則表達式中的定界符、原子和元字符,那么我們關于正則表達式教程的基本語法就剩下了正則表達式中的模式修正符。本節會向大家介紹模式修正符的概念、模式修正符的構成,以及結合實例的模式修正符的演示,大家在學習完本節內容之后,就完全可以讀懂正則表達式了。 

什么是模式修正符? 

1, 模式修正符就是幾個字母,我們在每個正則表達式中可以一次使用一個,也可以連續使用多個,每一個具一定的意義。 
2, 模式修正符是對整個正則表達式調優使用,也可以說是對正則表達式功能的擴展。 
還記得正則表達式的那個公式嗎?'/原子和元字符/模式修正符',其中正斜線為邊界符。 

模式修正符的構成 
模式修正符就是字母,只不過這些在模式修正符的應用之中有特殊的含義。下面我來看看都有哪些模式修正符,請看下表: 

模式修正符 說明
i 表示在和模式進行匹配進不區分大小寫
m 將模式視為多行,使用^和$表示任何一行都可以以正則表達式開始或結束
s 如果沒有使用這個模式修正符號,元字符中的"."默認不能表示換行符號,將字符串視為單行
x 表示模式中的空白忽略不計
e 正則表達式必須使用在preg_replace替換字符串的函數中時才可以使用(講這個函數時再說)
A 以模式字符串開頭,相當于元字符^
Z 以模式字符串結尾,相當于元字符$
U 正則表達式的特點:就是比較“貪婪”,使用該模式修正符可以取消貪婪模式

由于i表示匹配不區分大小寫,在下面的示例中,我們不再進行演示,我們來看一下其他模式修正符的示例。

1,模式修正符m。

復制代碼代碼如下:

<?php 
$pattern = '/^abc/m'; 
$string = 'bcd 
abc 
cba'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

匹配結果是成功的。注意:我們在使用模式修正符m的時候,將匹配字符串看成是多行而不是默認的單行,所以任何一行只要是以abc開頭,就匹配成功。但是,如果能匹配的行前面有空格的話,就不能匹配了!除非修改正則表達式的匹配模式。 
2,模式修正符s。 
復制代碼代碼如下:

<?php 
$pattern = '/a.*c/s'; 
$string = 'adsadsa 
c'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

這次的匹配記過也是成功的。如果你將上例中的模式修正符s去掉的話,匹配就會失敗。因為模式修正符s將匹配字符串看作是單行的,所以這個時候,元字符中的"."就可以表示換行符號了。 
3,模式修正符x。 
復制代碼代碼如下:

<?php 
$pattern = '/a c/x'; 
$string = 'a c'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

這次的匹配結果是失敗的。因為我們使用模式修正符x取消了模式中的空格。注意:我們無法使用模式修正符取消/s表示的空白。 
4,模式修正符A。 
復制代碼代碼如下:

<?php 
$pattern = '/ac/A'; 
$string = 'acahgyghvbm'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

正則表達式表示的含義是匹配以ac開頭的字符串,結果成功。 
模式修正符Z表示的是以字符串結尾的匹配,和A的用法是一樣的,我們不再進行演示。 
5,模式修正符U。 
這個模式修正符是十分重要的!在正則表達式中,其本身是“貪婪”的。那什么是貪婪模式呢?貪婪模式的意思就是說,正則表達式默認會在查找到第一個匹配后,繼續嘗試后面的匹配,如果能找到匹配,則匹配最大的范圍字符串。但有的時候這并不是我們想要的結果,所以我們需要取消貪婪模式。 
我們還是先看一個貪婪模式的例子: 
復制代碼代碼如下:

<?php 
$pattern = '/<b>.*<//b>/'; 
$string = '<b>welcome</b> <b>to</b> <b>phpfuns</b>'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

這個實例的本意是匹配welcome,但是結果卻匹配了welcome to phpfuns整個字符串(注意我們的字符串'welcome to phpfuns',其開頭和結尾正好構成了正則表達式的模式匹配,所以匹配成功),這就是正則表達式的貪婪模式。當然,這不是我們要的結果。 

取消貪婪模式 

我們可以使用模式修正符U和元字符?兩種方式取消正則表達式的貪婪模式。 
模式修正符U取消貪婪模式 
復制代碼代碼如下:

<?php 
$pattern = '/<b>.*<//b>/U'; 
$string = '<b>welcome</b> <b>to</b> <b>phpfuns</b>'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

元字符?取消貪婪模式 
復制代碼代碼如下:

<?php 
$pattern = '/<b>.*?<//b>/'; 
$string = '<b>welcome</b> <b>to</b> <b>phpfuns</b>dsadsadas'; 
if (preg_match($pattern, $string, $arr)) { 
echo "正則表達式<b>{$pattern}</b>和字符串<b>{$string}</b>匹配成功<br>"; 
print_r($arr); 
} else { 
echo "<font color='red'>正則表達式{$pattern}和字符串{$string}匹配失敗</font>"; 

?> 

注意元字符的位置,我們必須在“”之前結束貪婪模式,才能達到我們的目的,匹配welcome! 
本節我們介紹了正則表達式中的模式修正符,正則表達式的貪婪模式以及演示了正則表達式中模式修正符的使用方法。到此為止,基本的正則表達式語法構成我們也學習完了。在下一節,我們介紹一些常用的正則表達式,供大家查閱使用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久av| 亚洲午夜久久久久久久| 欧美怡红院视频一区二区三区| 欧美一级视频免费在线观看| 久久精品国产69国产精品亚洲| 日韩成人在线视频| 欧美一区二区三区精品电影| 亚洲网址你懂得| 日韩av一区在线| 精品久久国产精品| 91av视频在线| 26uuu另类亚洲欧美日本老年| 亚洲91精品在线观看| 国产不卡一区二区在线播放| 色偷偷88888欧美精品久久久| 国产精品久久久久久av福利| 日韩有码在线播放| 亚洲va国产va天堂va久久| 久久精品影视伊人网| 日韩欧美国产免费播放| 欧美成人精品一区| 久久久久久高潮国产精品视| 一色桃子一区二区| 欧美另类高清videos| 久久国产精品久久久久| 亚洲精品午夜精品| 在线播放国产精品| 欧美成人精品xxx| 亚洲已满18点击进入在线看片| 亚洲色图15p| 日韩在线观看免费高清完整版| 亚洲成年人在线播放| 亚洲精品福利在线观看| 亚洲最大成人免费视频| 成人黄色免费网站在线观看| 欧美色视频日本高清在线观看| 国产精品爽爽爽爽爽爽在线观看| 97国产真实伦对白精彩视频8| 在线亚洲午夜片av大片| 国产午夜精品理论片a级探花| 中文字幕精品影院| 精品国产电影一区| 亚洲已满18点击进入在线看片| 性色av一区二区三区红粉影视| 国产在线一区二区三区| 久久精品视频免费播放| 最近2019年中文视频免费在线观看| 亚洲淫片在线视频| 欧美一级视频一区二区| 日韩精品一区二区三区第95| 亚洲网址你懂得| 国产精品99久久久久久久久| 久热精品视频在线免费观看| 国产免费一区二区三区在线能观看| 日韩精品极品在线观看| 日韩av在线免播放器| 日韩电影免费观看在线| 久久精品视频播放| 亚洲电影免费观看| 国产欧美精品日韩精品| 精品高清一区二区三区| 久久久久久久香蕉网| 亚洲视频精品在线| 国产精品视频yy9099| 亚洲在线www| 亚洲人成电影在线| 欧美午夜精品在线| 欧美美最猛性xxxxxx| 丝袜美腿亚洲一区二区| 69视频在线免费观看| 国产精品欧美亚洲777777| 欧美激情第三页| 久久久久久久国产| 久久久国产一区二区三区| 精品视频偷偷看在线观看| 91亚洲精品一区二区| 日韩av快播网址| 亚洲精品久久久久久久久| 亚洲欧美制服第一页| 成人乱人伦精品视频在线观看| 亚洲伦理中文字幕| 尤物99国产成人精品视频| 国外视频精品毛片| 日韩成人久久久| 日韩精品免费在线视频观看| 国产精品色悠悠| 国产成人黄色av| 8090理伦午夜在线电影| 亚洲国产精品久久久久| 欧美日韩一区二区在线播放| 成人观看高清在线观看免费| 欧美一性一乱一交一视频| 欧美肥臀大乳一区二区免费视频| 一本一道久久a久久精品逆3p| 成人国产精品免费视频| 色悠悠国产精品| 久久久精品欧美| 亚洲男人第一网站| 久久精品视频亚洲| 91精品国产综合久久香蕉922| 97精品一区二区三区| 国产美女精品免费电影| 原创国产精品91| 爽爽爽爽爽爽爽成人免费观看| 亚洲国产精品成人一区二区| 日韩精品在线免费观看| 精品国内产的精品视频在线观看| 亚洲天堂av综合网| 日韩欧美极品在线观看| 国产日本欧美视频| 国产精品7m视频| 日韩少妇与小伙激情| 亚洲女同性videos| 亚洲黄色在线看| 精品亚洲精品福利线在观看| 色综合久久中文字幕综合网小说| 国产精品国产三级国产aⅴ9色| 日韩av免费看| 91在线网站视频| 亚洲一区亚洲二区亚洲三区| 亚洲国产又黄又爽女人高潮的| 国产成人一区二区在线| 亚洲第一区在线观看| 亚洲精品suv精品一区二区| 国产亚洲免费的视频看| 第一福利永久视频精品| 亚洲成av人片在线观看香蕉| 欧美野外wwwxxx| 国产剧情日韩欧美| 亚洲美女av网站| 日韩亚洲成人av在线| 最近2019年中文视频免费在线观看| 国产精品成人播放| 91精品国产高清自在线| 欧美成人激情图片网| 亚洲国产精品高清久久久| 成人综合网网址| 美日韩精品免费观看视频| 欧美一区二区三区艳史| 精品久久久香蕉免费精品视频| 国产精品福利小视频| 欧美大尺度在线观看| 亚洲精品永久免费| 国产欧美精品va在线观看| 久久精品国产亚洲| 国产成人精品一区二区| 精品偷拍一区二区三区在线看| 日韩成人激情在线| 国产精品久久久久久五月尺| 欧美黑人xxxⅹ高潮交| 欧美日韩视频在线| 另类色图亚洲色图| 热久久这里只有精品| 成人欧美在线观看| 日韩欧美黄色动漫| 日韩高清免费在线| 欧美黄色片在线观看| 91伊人影院在线播放| 日本不卡视频在线播放| 久久精品99国产精品酒店日本| 欧美精品在线视频观看| 欧美激情小视频| 91精品国产高清自在线看超| 日韩中文字幕国产精品|