重复字符串

时间:2018-05-31 04:48:19

标签: regex

您好我正在尝试制定正则表达式以查找子字符串并替换该字符串的一部分。我输入的格式为

Some_text_beginning_AASHISH_XX_YY_COPY_COPY_COPY_COPY

请注意每个字符串都会包含单词AASHISH,最后可能会有不确定的COPY数。我想删除所有COPY

我把正则表达式写成

(.*)_AASHISH_(.*)_COPY+

我可以找到所有有效的表达式。但是当我尝试用

替换它时
$1_AASHISH_$2

它仅替换最后一个_COPY所有_COPY,它们在最后一个被带到第2组之前。

进一步看到我没有使用任何编程语言。我正在使用一些第三方工具。所有它允许我搜索字符串并替换它。它允许我编写正则表达式。

为了澄清为什么这个问题与之前发布的不一样,我使用的工具不允许我以某种方式使用所有正则表达式。我不知道该工具是如何创建的。我只是有UI。 提前致谢

1 个答案:

答案 0 :(得分:1)

这是一个正则表达式,可以捕获您想要维护的整个部分,从而导致替换只是$1

(.*_AASHISH_.*?)(?:_COPY)+

一些注意事项:

  • .*? - 最后的?会使重复运算符*变得非贪婪。它将匹配给定其上下文的最小字符。
  • (?:_COPY) - ?:前缀使其成为非捕获分组。
  • + - 重复运算符会使整个最后一个组(_COPY)重复1次或更多次,而不仅仅是Y