我有几行看起来像
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
在每一行中,我想用我自己的代码替换从[
到的代码。{
\node
始终位于每行的开头。{
是不是在行的末尾。
我已经找到(在这里)并尝试了类似^\\node.*\{
或的东西,但两者都产生了同样不令人满意的结果:整个代码直到文档中的\\node.*\{
最后一段都被标记。{
答案1
实际上,启用“环绕”功能完全没问题。事实上,我建议你这样做。
由于片段保证位于行首,因此您可以使用插入符号 ( ^
) 锚点。
以下对我有用:
查找:^\\node\[[^{]*\{
;替换为:\\node[test{
锚点^
到行首。\\node\[
与文本匹配\node[
,在对特殊字符进行转义后。[^{]*
抓取除开括号之外的每个字符。(请注意,这里{
不需要转义,因为它属于字符类。)然后\{
抓取开括号本身。
如果 ... Some code here ...
可以包含括号:
查找:^\\node\[.*\{([^{]*)$
;替换为:\\node[test{$1
第一部分相同。然后,.*
将匹配尽可能多的字符。\{
匹配一个左括号,然后([^{]*)$
匹配并捕获所有字符,直到行尾。由于[^{]
指定了,因此它不会匹配任何左括号,因此前一个必须匹配行中的\{
最后一个。{
答案2
在“搜索/替换”对话框中,使用“查找内容”:节点[。*{并替换为:节点[测试{成功替换...这里有一些代码...和测试每行均如此。
您必须指定以下选项:
- 不要勾选“环绕”
- 勾选“正则表达式”
- 不要勾选“.匹配换行符”