Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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++,对于任何文本字符串和特定命令“\command”,如何用\command{STRING}替换文本中出现的所有“STRING”(文本中有此引号) 也就是说,用命令简单地替换引号。但只有当引号的形式为“STRING”时,而不是当引号的形式为“STRING”(开始标记不同,结束标记相同)时。我想说的是,尝试使用正则表达式。您可以选择“正则表达式”作为搜索模式 simples搜索将是“(.*)”。括号允许您引用替换正则表达式中找到的字符串。如果要允许字符串中使用换行符,请选中复选框“.matches n

对于任何文本字符串和特定命令“\command”,如何用\command{STRING}替换文本中出现的所有“STRING”(文本中有此引号)


也就是说,用命令简单地替换引号。但只有当引号的形式为“STRING”时,而不是当引号的形式为“STRING”(开始标记不同,结束标记相同)时。我想说的是,尝试使用正则表达式。您可以选择“正则表达式”作为搜索模式

simples搜索将是
“(.*)”
。括号允许您引用替换正则表达式中找到的字符串。如果要允许字符串中使用换行符,请选中复选框“.matches newline”

如果您有一个像
“STRING”STRING“
这样的文本,并且您只想匹配第一个引号之间的字符串,那么您将需要以下正则表达式
”([^“]*)”
。如果您的字符串包含换行符,这也将匹配。如果您不想这样做,请使用
“([^”^\n]*)”


替换正则表达式将是
\\command{\1}

默认的搜索和替换没有进行剪切?使用正则表达式可以更好地防止单行上多个带引号的字符串:
“([^”]*)”
,但只有在引用的字符串不跨行的情况下,这才有效。啊,你是对的。我想这取决于搜索和替换查询的确切目的。类似于
“([^”^\n]*)“
可能会起作用吗?我不确定记事本++如何处理换行符。按照惯例,它们在正则表达式中永远不会匹配,除非您使用某种标志显式启用多行表达式。这取决于记事本++使用的正则表达式引擎。有一个“.matches newline”复选框。我刚试过,带换行符的字符串不会被
(.*)
匹配,至少在我的记事本++中是这样。我没有看到复选框“.matches newline”。有,你可能应该更新你的记事本++安装(
帮助->更新记事本+
)。此外,从上的记事本++版本6,您可以在正则表达式中使用
\r
\n