sublime 正则跨行匹配 |
您所在的位置:网站首页 › sublime换行符是什么 › 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]+?·著$ 代表 :匹配以※版本出处为开头、以·著为结尾的 可跨行的字符串,但尽量少重复
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |