notepad++正则表达式替换,在匹配文本前插入字符,如何做到?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了notepad++正则表达式替换,在匹配文本前插入字符,如何做到?相关的知识,希望对你有一定的参考价值。
想用Calibre制作电子书,用到markdown语法标记,要求在所有章节标题前插入“##”
例如原文本:
第一章 XXX
替换后为:
##第一章 XXX
在替换窗口“查找目标”里输入
第(一|二|三|四|五|六|七|八|九|十|百|[0-9])+(章)\s+.*
替换结果的表达式应该怎么输入?
替换为表达式:##第$1章$2\r追问
正解,谢谢!
另,请问$的具体如何使用?
如果替换目标用:第.*章
最终表达式中通配符的内容应该用什么替代?
$1代表查找表达式中的第一对小括号里面的内容,依次类推。第二对小括号里面的内容就用$2代表。
如果替换目标用:第.*章,表达式应该修改为:第(.*)章
替换为表达式为:第$1章
正则表达式在Notepad ++中查找/替换多个文本
我正在努力与一些正则表达式查找/替换..
我想搜索一些术语,当它找到任何一个术语时,它会删除它们所在的行以及下一行。我想要搜索的术语中会有引号和逗号。
这些是典型的搜索词(包括引号):
“文字两个”,BB
“文字三”,AA
“四个文字”,AA
典型文件(将是1000行的长)内容:
#text:0 first="blah" second="TEXT ONE",AA | more text
Line 1
#text:0 first="blah" second="TEXT TWO",BB | more text
Line 2
#text:0 first="blah" second="TEXT THREE",AA | more text
Line 3
#text:0 first="blah" second="TEXT FOUR",BB | more text
Line 4
#text:0 first="blah" second="TEXT THREE",AA | more text
Line 5
#text:0 first="blah" second="TEXT FOUR",AA | more text
Line 2
我希望结果如下:
#text:0 first="blah" second="TEXT ONE",AA | more text
Line 1
#text:0 first="blah" second="TEXT FOUR",BB | more text
Line 4
即任何包含上述3个术语中的任何一行的行将被完全删除 - 以及其后续行。
我试过正则表达式搜索/替换:
找什么:-
.*"TEXT TWO",BB.*\R.*(?:\R|$)|.*"TEXT THREE",AA.*\R.*(?:\R|$)|.*"TEXT FOUR",AA.*\R.*(?:\R|$)
替换为: - (留空)
当我执行'find'和'count'时,它正确地说出了86个匹配。如果我做'替换',它说它已经取代了86个匹配 - 但它实际上已经删除了数千行。困惑......你能帮帮忙吗?我需要一些额外的引用或逃脱字符吗?
如评论中所述,不要检查. matches newline
。
你也可以简化一下:
^.*(?:”TEXT TWO”,BB|”TEXT THREE”,AA|”TEXT FOUR”,AA).*\R.*(?:\R|$)
以上是关于notepad++正则表达式替换,在匹配文本前插入字符,如何做到?的主要内容,如果未能解决你的问题,请参考以下文章