溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

正則表達(dá)式中多行模式與單行模式的示例分析

發(fā)布時(shí)間:2021-09-16 14:41:33 來(lái)源:億速云 閱讀:144 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)正則表達(dá)式中多行模式與單行模式的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

在Expresso中,測(cè)試“多行模式”

測(cè)試一

正則表達(dá)式中多行模式與單行模式的示例分析

注意:這里樣例文本中3eeeee后面沒(méi)有回車,光標(biāo)就在e的后面。匹配的結(jié)果是3eeeee,如上圖的Search Results區(qū)中所示。

為什么這里不能匹配1abcde和2abc?

開(kāi)啟多行模式

^ 可以匹配字符串開(kāi)頭(字符串的開(kāi)始位置),也可以匹配行的開(kāi)頭(即換行符\n之后的位置)
$ 可以匹配字符串結(jié)尾(字符串的結(jié)束位置), 也可以匹配行的結(jié)尾(即換行符\n之前的位置)

關(guān)閉多行模式

^ 只能匹配字符串開(kāi)頭
$ 只能匹配字符串結(jié)尾

知識(shí)點(diǎn):\r為回車符,\n 為換行符。在windows中,我們平常說(shuō)的換行,實(shí)質(zhì)上是先回車,后換行;下面有更詳細(xì)解說(shuō)。

正則表達(dá)式中多行模式與單行模式的示例分析

如上圖所示:\r 匹配 [CR]、\n 匹配[LF]   <——  CR為回車  LF為換行 
字符串多個(gè)段落,比如
ab
cd
e
在windows操作系統(tǒng)中其實(shí)是:ab[CR][LF]cd[CR][LF]e

在windows中,文本中的回車換行儲(chǔ)存為: 0D 0A。也就是說(shuō),先儲(chǔ)存的是“回車\r”<CR>,再儲(chǔ)存的是“換行\(zhòng)n”<LF>
CR用符號(hào)'\r'表示, ASCII代碼是13, 十六進(jìn)制為0x0D;
LF用符號(hào)'\n'表示, ASCII代碼是10, 十六進(jìn)制為0x0A;

正則表達(dá)式:(?m)^(\d\w+)(\s*)$

樣例文本

正則表達(dá)式中多行模式與單行模式的示例分析

匹配結(jié)果

正則表達(dá)式中多行模式與單行模式的示例分析

在Expresso、PHP中,啟用多行模式,"$" 匹配字符串結(jié)束位置或者 "\n" 之前的位置。

單行模式

開(kāi)啟單行模式: . 可以匹配任意字符(包括換行符)
關(guān)閉單行模式: . 只有匹配 非換行 的其它任意字符(.可匹配\r,即除了不匹配\n外的所有字符。)

多行模式 影響 ^ 和 $ 的匹配
單行模式 影響 . 的匹配

多行模式中必定包含 ^ 或 $ 或同時(shí)包含,否則即使加了 m,也沒(méi)有任何意義

單行模式和多行模式是八桿子打不著的兩個(gè)概念,只是因?yàn)檎齽t發(fā)展的歷史原因,造就了這樣兩個(gè)MS互斥的概念
單行模式影響的是小數(shù)點(diǎn)“.”的匹配范圍
多行模式影響的是“^”和“$”的匹配范圍

至于后面幾個(gè)概念,全局匹配,多行模式和貪婪模式之間也沒(méi)有什么必然聯(lián)系

全局匹配關(guān)閉,只匹配首次成功匹配項(xiàng),全局匹配開(kāi)啟,匹配所有成功匹配項(xiàng)
全局模式是一些腳本語(yǔ)言中才有的概念
在進(jìn)行匹配時(shí),關(guān)閉全局模式,類似于.NET中的Match方法,開(kāi)啟全局模式,類似于.NET中的Matches方法
在進(jìn)行替換時(shí),關(guān)閉全局模式,類似于Java中的replaceFirst,開(kāi)啟全局模式,類似于Java中的replaceAll

(在進(jìn)行匹配時(shí),關(guān)閉全局模式,類似于PHP中的preg_ match函數(shù);開(kāi)啟全局模式,類似于PHP中的preg_ match_ all函數(shù))

關(guān)于“正則表達(dá)式中多行模式與單行模式的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI