【问题标题】:Regular Expression (notepad++) insert, not replace正则表达式(记事本++)插入,而不是替换
【发布时间】:2020-08-18 00:15:09
【问题描述】:

在正则表达式(notepad++)中,我想搜索:( )|(:)|(_)|(\.),并在前面插入\,如上所述,空格、冒号、下划线和“.”。

搜索示例:abcd:1234 jiod.8ufd_adfd

结果:abcd\:1234\ jiod\.8ufd\_adfd

简单来说,如何引用替换表达式中的内容?

请注意,示例中不是\1, \2, \3 or \4,因为我需要包含找到的内容,无法知道找到的内容,是吗?

【问题讨论】:

  • 您的意思是要在每个冒号、空格点或下划线之前添加反斜杠吗?匹配 [:\h._] 并替换为反斜杠和完整匹配 \\$& regex101.com/r/Si6rHp/1
  • 答案成功了吗?

标签: regex notepad++


【解决方案1】:

您可以使用单个字符类(而不是使用与捕获组的交替)来匹配列出的一个

在替换中使用$& 来引用匹配的文本并在前面加上一个反斜杠。

匹配

[:\h._]

替换为

\\$&

字符类匹配冒号、水平空白字符、点或下划线。

Regex demo

【讨论】:

    【解决方案2】:

    没有插入这样的东西,因为如果您考虑一下,插入只是用包含旧文本的新字符串替换原始字符串。

    试试这个:搜索([ :_.])(您的原始正则表达式毫无意义地复杂)并替换为\\$1(即,斜线后跟原始文本)。

    【讨论】:

      猜你喜欢
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多