這篇文章將為大家詳細講解有關(guān)正則表達式中多行模式與單行模式的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為玉山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務,及玉山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設(shè)計、做網(wǎng)站、玉山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!在Expresso中,測試“多行模式”
測試一
注意:這里樣例文本中3eeeee后面沒有回車,光標就在e的后面。匹配的結(jié)果是3eeeee,如上圖的Search Results區(qū)中所示。
為什么這里不能匹配1abcde和2abc?
開啟多行模式
^ 可以匹配字符串開頭(字符串的開始位置),也可以匹配行的開頭(即換行符\n之后的位置)
$ 可以匹配字符串結(jié)尾(字符串的結(jié)束位置), 也可以匹配行的結(jié)尾(即換行符\n之前的位置)
關(guān)閉多行模式
^ 只能匹配字符串開頭
$ 只能匹配字符串結(jié)尾
知識點:\r為回車符,\n 為換行符。在windows中,我們平常說的換行,實質(zhì)上是先回車,后換行;下面有更詳細解說。
如上圖所示:\r 匹配 [CR]、\n 匹配[LF] <—— CR為回車 LF為換行
字符串多個段落,比如
ab
cd
e
在windows操作系統(tǒng)中其實是:ab[CR][LF]cd[CR][LF]e
在windows中,文本中的回車換行儲存為: 0D 0A。也就是說,先儲存的是“回車\r”<CR>,再儲存的是“換行\(zhòng)n”<LF>
CR用符號'\r'表示, ASCII代碼是13, 十六進制為0x0D;
LF用符號'\n'表示, ASCII代碼是10, 十六進制為0x0A;
正則表達式:(?m)^(\d\w+)(\s*)$
樣例文本
匹配結(jié)果
在Expresso、PHP中,啟用多行模式,"$" 匹配字符串結(jié)束位置或者 "\n" 之前的位置。
單行模式
開啟單行模式: . 可以匹配任意字符(包括換行符)
關(guān)閉單行模式: . 只有匹配 非換行 的其它任意字符(.可匹配\r,即除了不匹配\n外的所有字符。)
多行模式 影響 ^ 和 $ 的匹配
單行模式 影響 . 的匹配
多行模式中必定包含 ^ 或 $ 或同時包含,否則即使加了 m,也沒有任何意義
單行模式和多行模式是八桿子打不著的兩個概念,只是因為正則發(fā)展的歷史原因,造就了這樣兩個MS互斥的概念
單行模式影響的是小數(shù)點“.”的匹配范圍
多行模式影響的是“^”和“$”的匹配范圍
至于后面幾個概念,全局匹配,多行模式和貪婪模式之間也沒有什么必然聯(lián)系
全局匹配關(guān)閉,只匹配首次成功匹配項,全局匹配開啟,匹配所有成功匹配項
全局模式是一些腳本語言中才有的概念
在進行匹配時,關(guān)閉全局模式,類似于.NET中的Match方法,開啟全局模式,類似于.NET中的Matches方法
在進行替換時,關(guān)閉全局模式,類似于Java中的replaceFirst,開啟全局模式,類似于Java中的replaceAll
(在進行匹配時,關(guān)閉全局模式,類似于PHP中的preg_ match函數(shù);開啟全局模式,類似于PHP中的preg_ match_ all函數(shù))
關(guān)于“正則表達式中多行模式與單行模式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標題:正則表達式中多行模式與單行模式的示例分析-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://aaarwkj.com/article28/pghjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、手機網(wǎng)站建設(shè)、定制開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容