-1

我有一个包含随机代码的脚本,但我正在notepad ++中寻找一种方法,或者寻找批处理文件或任何可以替换sepcifque代码的工具,这是一个示例:

Random
If this equal that then you soulAd do this and do that therefore..
the code should be executed immediatly
--stackb

select * from user_error where object_name = name
select * from user_error where table= randomly

case 1 a = b else c=a
--stacke
Begin with the structure of the data and divide the codes
end with what you know

我想替换评论堆栈 b 和堆栈 a 之间的单词,所以结果将如下所示

Random
If this equal that then you sould do this and do that therefore..
the code should be executed immediatly
--stackb

The codes here has been replaced,
can you do that ?

case 1 a = b else c=a
--stacke
Begin with the structure of the data and divide the codes
end with what you know

批处理文件或记事本++中是否有代码可以实现我的结果?

4

1 回答 1

2

在 Notepad++ 中,转到Search > Replace菜单(快捷键CTRL+ H)并执行以下操作:

  1. 查找内容(请参阅下面的说明):

    (\-\-stackb.*?)select.+?$\r?\nselect.+?$(\r?\n.*?\-\-stacke)
    
  2. 代替:

    $1replaced text$2
    
  3. 选择单选按钮“正则表达式”并选择复选框“。匹配换行符”

  4. 然后按Replace All

这将转换以下文件:

Random
If this equal that then you soulAd do this and do that therefore..
the code should be executed immediatly
--stackb

select * from user_error where object_name = name
select * from user_error where table= randomly

case 1 a = b else c=a
--stacke
Begin with the structure of the data and divide the codes
end with what you know

至:

Random
If this equal that then you soulAd do this and do that therefore..
the code should be executed immediatly
--stackb

replaced text

case 1 a = b else c=a
--stacke
Begin with the structure of the data and divide the codes
end with what you know

正则表达式解释:

  • \-\-stackb匹配字符串--stackb。这里没有什么特别的,除了转义特殊字符的反斜杠。这意味着-将被解释为文字-而不是正则表达式特殊字符
  • .*?.匹配任何字符,加上换行符,因为我们激活了选项“。匹配换行符”。星号*匹配 0 次或多次量词。所以意味着匹配任何字符或换行符 0 次或更多次。当量词后跟问号时,它会使量词non-greedy,这是一个更高级的主题,但简单来说,就像对量词说尝试用可能的最小数量来满足自己.*?.
  • (\-\-stackb.*?)现在您已经了解了正则表达式的含义,您可以添加一个括号以捕获匹配结果。您可以使用特殊变量$1(或\1相同)访问结果。如您所见,我们在替换中使用它。
  • select.+?$\r?\n这里唯一的新内容是$匹配行尾和用于查找换行符的特殊字符\r(回车)、\n(换行符)。请注意,\r后面是?量词,表示匹配 1 次或 0 次
于 2013-10-29T10:09:53.320 回答