久久96国产精品久久久-久久发布国产伦子伦精品-久久精品国产精品青草-久久天天躁夜夜躁狠狠85麻豆

技術員聯盟提供win764位系統下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務器類 >

正則表達式的多行模式與單行模式教程

來源:技術員聯盟┆發布時間:2017-09-22 18:06┆點擊:

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

  測試一

正則表達式的多行模式與單行模式教程 三聯

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

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

  開啟多行模式

  ^ 可以匹配字符串開頭(字符串的開始位置),也可以匹配行的開頭(即換行符\n之后的位置)

  $ 可以匹配字符串結尾(字符串的結束位置), 也可以匹配行的結尾(即換行符\n之前的位置)

  關閉多行模式

  ^ 只能匹配字符串開頭

  $ 只能匹配字符串結尾

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

正則表達式的多行模式與單行模式教程

  如上圖所示:\r 匹配 [CR]、\n 匹配[LF] <—— CR為回車 LF為換行

  字符串多個段落,比如

  ab

  cd

  e

  在windows操作系統中其實是:ab[CR][LF]cd[CR][LF]e

  在windows中,文本中的回車換行儲存為: 0D 0A。也就是說,先儲存的是“回車\r”,再儲存的是“換行\n”

  CR用符號'\r'表示, ASCII代碼是13, 十六進制為0x0D;

  LF用符號'\n'表示, ASCII代碼是10, 十六進制為0x0A;

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

  樣例文本

正則表達式的多行模式與單行模式教程

  匹配結果

正則表達式的多行模式與單行模式教程

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

  單行模式

  開啟單行模式: . 可以匹配任意字符(包括換行符)

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

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

  單行模式 影響 . 的匹配

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

  單行模式和多行模式是八桿子打不著的兩個概念,只是因為正則發展的歷史原因,造就了這樣兩個MS互斥的概念

  單行模式影響的是小數點“.”的匹配范圍

  多行模式影響的是“^”和“$”的匹配范圍

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

  全局匹配關閉,只匹配首次成功匹配項,全局匹配開啟,匹配所有成功匹配項

  全局模式是一些腳本語言中才有的概念

  在進行匹配時,關閉全局模式,類似于.NET中的Match方法,開啟全局模式,類似于.NET中的Matches方法

  在進行替換時,關閉全局模式,類似于Java中的replaceFirst,開啟全局模式,類似于Java中的replaceAll

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