【发布时间】:2017-06-20 09:36:18
【问题描述】:
首先,我希望能够做两件事:
第一件事:
要提取 foo_abc(以及类似的每隔一行,例如 goo_zxy 和 doo_fgh),我需要删除一些附加的文本 BEFORE foo_abc 和 之后 foo_abc。
例如:
TEXTBEFOREfoo_abcTEXTAFTER
文本前goo_zxy文本后
TEXTBEFOREdoo_fghTEXTAFTER
获得:
foo_abc
goo_zxy
doo_fgh
第二件事:
我现在需要在 before 和 after foo_abc 再次附加不同的文本。 像这样:
TextAfoo_abcTextB
所以我所做的是:
查找:^
替换:TextA
查找:$
替换:TextB
效果很好,但我必须执行查找和替换 TWICE,这不是很有效。为了避免这种情况,我发现了这个:Multiple word search and replace in notepad++
并像这样应用它:
查找:(^)|($)
替换:(?1TextA)(?2TextB)
但效果不太好。
并且,如前所述,我需要此功能适用于 EACH 和每一行: 例如:
foo_abc
goo_zxy
doo_fgh
我需要在每一行的开头插入 TextA,在每一行的末尾插入 TextB,如下所示:
TextAfoo_abcTextB
TextAgoo_zxyTextB
TextAdoo_fghTextB
这可以吗? (是的,我实际上需要对超过 10000 行执行此操作,而不仅仅是 3 行,并且想要一种有效的方式来执行此操作)。
我是否错过了一种更快的方法来完成所有这些工作?也许通过在 TEXTBEFORE 和 TEXTAFTER 上的 '1st Thing' 中执行搜索和替换,使用 TextA 和TextB 分别是一次性的吗?
非常感谢。
编辑:是的,它们是文字字符串。是的,它们确实包含特殊字符,因为它们代表 URL 的一部分。
【问题讨论】:
-
TEXTBEFORE和TEXTAFTER是文字字符串吗?尝试^(TEXTBEFORE)|TEXTAFTER$并替换为(?{1}TextA:TextB) -
问题。是要保持固定的文本,还是要替换的前后文本是固定的?
-
请给我们展示真实案例。
foo_abc都是3个小写字母,下划线,3个小写字母吗? -
@WiktorStribiżew 抱歉,是的,它们是文字字符串。
-
@LukStorms 是的。
标签: regex replace editor notepad++ text-editor