最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

正則表達(dá)式的多行模式與單行模式圖文分析

 更新時間:2017年04月08日 23:14:29   投稿:mdxy-dxy  
這篇文章主要介紹了正則表達(dá)式的多行模式與單行模式圖文分析,需要的朋友可以參考下

在Expresso中,測試“多行模式”

測試一

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

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

開啟多行模式

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

關(guān)閉多行模式

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

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

如上圖所示:\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, 十六進(jìn)制為0x0D;
LF用符號'\n'表示, ASCII代碼是10, 十六進(jìn)制為0x0A;

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

樣例文本

匹配結(jié)果

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

單行模式

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

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

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

單行模式和多行模式是八桿子打不著的兩個概念,只是因為正則發(fā)展的歷史原因,造就了這樣兩個MS互斥的概念
單行模式影響的是小數(shù)點“.”的匹配范圍
多行模式影響的是“^”和“$”的匹配范圍

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

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

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

相關(guān)文章

最新評論

晋宁县| 长泰县| 诸暨市| 铜梁县| 建昌县| 聂荣县| 静安区| 福建省| 无为县| 滨州市| 济阳县| 青岛市| 库尔勒市| 都兰县| 日喀则市| 泾源县| 苏州市| 介休市| 德江县| 龙南县| 吉木乃县| 云霄县| 普定县| 宁阳县| 洛隆县| 唐海县| 县级市| 高雄县| 栖霞市| 潢川县| 扶风县| 凤台县| 弥渡县| 津南区| 郸城县| 金昌市| 苏尼特右旗| 陇西县| 徐汇区| 安国市| 永安市|