Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Notepad++ 是否可以搜索和替换记事本++;成对的?_Notepad++ - Fatal编程技术网

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*”表达式或使用“除
*
之外的任何内容”表达式。我认为它还需要对第一个和最后一个
*
进行转义。当我在记事本++中尝试
*(.*)
时,收到一条消息,正则表达式无效。