Notepad++ 是否可以搜索和替换记事本++;成对的?
例如,如果我在记事本++上写了Notepad++ 是否可以搜索和替换记事本++;成对的?,notepad++,Notepad++,例如,如果我在记事本++上写了*ggg*。我希望它用奇数的*代替Pl,用偶数的*代替Pk。换言之,在更换之后,将是: PlgggPk 阅读所有的课文。我该怎么做?目前,我只找到了一种替代所有符号的方法 这可以使用notepad++中的正则表达式替换来完成。 转到“替换”对话框 查找:\*(*)\* 替换:Pl\1PK Searchmode:Regular Expression这可以使用notepad++中的regex replace来完成。 转到“替换”对话框 查找:\*(*)\* 替换:Pl\
*ggg*
。我希望它用奇数的*
代替Pl
,用偶数的*
代替Pk
。换言之,在更换之后,将是:
PlgggPk
阅读所有的课文。我该怎么做?目前,我只找到了一种替代所有符号的方法 这可以使用notepad++中的正则表达式替换来完成。 转到“替换”对话框 查找:\*(*)\* 替换:Pl\1PK
Searchmode:Regular Expression这可以使用notepad++中的regex replace来完成。 转到“替换”对话框 查找:\*(*)\* 替换:Pl\1PK
Searchmode:Regular Expression正如我在对您的问题的评论中提到的,这可以通过使用正则表达式进行搜索来实现。我现在有时间验证我建议的正则表达式 在“查找内容”框中,输入
\*([^*]*)\*
这包括三个部分:
:匹配符号\*
(*
转义星号,因为它在正则表达式中有特殊含义);接\
:除([^*]*)
以外的任何符号序列,将匹配序列捕获为组1;接*
:另一个符号\*
*
Pk\1Pl
。\1
是对两个匹配的*
符号之间捕获的组1的引用,即除*
将搜索模式设置为“Regex”,然后点击全部替换
在以下输入上使用此选项:
* lorem *
* ipsum
dolor *
* sit * amet *
*
* consectetur * adipisci * elit *
**
结果如下:
Pk lorem Pl
Pk ipsum
dolor Pl
Pk sit Pl amet Pk
Pl
Pk consectetur Pl adipisci Pk elit Pl
PkPl
正如我在对你的问题的评论中提到的,这可以通过使用正则表达式进行搜索来实现。我现在有时间验证我建议的正则表达式 在“查找内容”框中,输入
\*([^*]*)\*
这包括三个部分:
:匹配符号\*
(*
转义星号,因为它在正则表达式中有特殊含义);接\
:除([^*]*)
以外的任何符号序列,将匹配序列捕获为组1;接*
:另一个符号\*
*
Pk\1Pl
。\1
是对两个匹配的*
符号之间捕获的组1的引用,即除*
将搜索模式设置为“Regex”,然后点击全部替换
在以下输入上使用此选项:
* lorem *
* ipsum
dolor *
* sit * amet *
*
* consectetur * adipisci * elit *
**
结果如下:
Pk lorem Pl
Pk ipsum
dolor Pl
Pk sit Pl amet Pk
Pl
Pk consectetur Pl adipisci Pk elit Pl
PkPl
将ggg替换为PlgggPk?@Luc否,将
*ggg*
替换为PlgggPk
。问题是<代码> GGG可以是任何东西,例如,考虑下面的一个文本块:<代码> *GGGG*是WWW*的最佳方式。我想让它在所有文本中以两两访问的方式进行替换,独立于**
中的内容。比如用regex\*([^*]*)\*
搜索并替换为Pl\1Pk
?我不确定这是否能跨行工作,我现在无法测试它,但如果不能,这可以解决用PlgggPk替换ggg的问题?@Luc否,用PlgggPk
替换*ggg*
。问题是<代码> GGG可以是任何东西,例如,考虑下面的一个文本块:<代码> *GGGG*是WWW*的最佳方式。我想让它在所有文本中以两两访问的方式进行替换,独立于**
中的内容。比如用regex\*([^*]*)\*
搜索并替换为Pl\1Pk
?我不确定这是否能跨行工作,我现在无法测试它,但如果不能,这可以解决,这将用PLggg*hhhk
取代*ggg*hhh*
,这不是我们想要的。*
是贪婪的,你需要使用一个“nongreedy*”表达式或者使用一个“除*
之外的任何东西”表达式。我认为它还需要对第一个和最后一个*
进行转义。当我尝试*(*)时*
在记事本++中,我收到一条消息,正则表达式无效。这将用PLggg*hhhPK
替换*ggg*hhh*
,这不是所需要的。*
是贪婪的,您需要使用“nongreedy*”表达式或使用“除*
之外的任何内容”表达式。我认为它还需要对第一个和最后一个*
进行转义。当我在记事本++中尝试*(.*)
时,收到一条消息,正则表达式无效。