日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sublime 正则跨行匹配

發布時間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sublime 正则跨行匹配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

場景:

用到的正則規則

1)空格

2) 若干個空格

3)^以字符串為匹配的開頭

4)$ 以字符串作為結尾

5)匹配任意字符 ,包括換行符

6)貪婪匹配? 非貪婪匹配


場景:

在一個小說TXT中,頻繁的添加了

類似下面的信息

  ※版本出處:舊雨閣掃校※ 上一頁回目錄下一頁 lwj@cser 制作更多精彩E書請訪問“wbzd”2009年10月12日 星期一 2:43:17 PM《舊派武俠合集》lwj@cser制作 2009.8江湖奇俠傳 - 第三十二回 驚變卦孝子急親仇 污佛地淫徒受重創目錄 白蓮英雄傳 偷拳 荒江女俠 江湖怪異傳 江湖奇俠傳 近代俠義英雄傳 沉劍飛龍記 藍田女俠 鷹爪王 羅剎夫人 七殺碑 制作說明 使用說明《江湖奇俠傳》平江不肖生·著

需要匹配這些信息,然后批量替換掉。

以? ?空格? ※版本出處為開頭,以·著 為結束

用到的正則規則

1)空格

\s

2) 若干個空格

\s*? (可以是0個)

\s+ (至少1個空格)

3)^以字符串為匹配的開頭

比如,

^once 表示以 once開頭的

^上一頁? ?

而在本示例中,需要匹配以? 多個空格 +※版本出處? 開頭的字符串

所以可以這么寫

^\s*※版本出處??

其中,s*※版本出處? 代表:多個空格,空格之后緊跟著 ※版本出處??

? ? ? ? ? ^\s*※版本出處? ?代表:以這個開頭的字符串

4)$ 以字符串作為結尾

比如? once$

在字符串后面加個$,? 就代表匹配的信息要以? 這個字符串作為結尾

結合本例:我們要匹配? ?·著? 作為結尾的字符串

所以可以這么寫

·著$

5)匹配任意字符 ,包括換行符

[\s\S]+? ? ??

這個實測可以匹配到換行符

注:匹配任意字符串 但不匹配換行 可以用? ? ? .*?

比如; 一行內 以w開頭的字符串,可以這么寫:??^w.*? 或者?(w|w).*

6)貪婪匹配? 非貪婪匹配

貪婪模式在整個表達式匹配成功的前提下,盡可能多的匹配,

非貪婪模式在整個表達式匹配成功的前提下,盡可能少的匹配

對于本例,如果這么寫

^\s*※版本出處[\s\S]+·著$

匹配以 ※版本出處為開始, 以·著為結尾的字符串, 會發現,它會一直匹配到小說的末尾,把中間的小說章節內容也匹配進去了,顯然不是我們希望的。

因為,默認是使用貪婪匹配

怎么才能換成非貪婪匹配呢?

就是在量詞后面直接加一個?

  下面的都是量詞:

? ? ? ?{m,n}:m到n個

     *:任意多個

    ? ?+:一個到多個

 ? ? ? ? ? ? ? ?:0或一個

  幾個常用的非貪婪匹配Pattern:

*??重復任意次,但盡可能少重復?? +??重復1次或更多次,但盡可能少重復?? ???重復0次或1次,但盡可能少重復?? {n,m}??重復n到m次,但盡可能少重復?? {n,}??重復n次以上,但盡可能少重復 ?

綜上所述,對于我們的例子,可以這么寫? [\s\S]+?

總的匹配模式如下:

^\s*※版本出處[\s\S]+?·著$

代表 :匹配以※版本出處為開頭、以·著為結尾的 可跨行的字符串,但盡量少重復

? ? ? ?

總結

以上是生活随笔為你收集整理的sublime 正则跨行匹配的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。