你好,我正在尝试制定正则表达式来查找子字符串并替换该字符串的一部分。我有以下格式的输入
Some_text_beginning_AASHISH_XX_YY_COPY_COPY_COPY_COPY
请注意,每个字符串都会有单词AASHISH
,最后可能会有不确定的副本数量。我想删除所有的COPY
我把正则表达式写成
(.*)_AASHISH_(.*)_COPY+
我可以用这个找到所有有效的表达式。但当我尝试将其替换为
$1_AASHISH_$2
它只替换最后一个_COPY
,所有在最后一个之前出现的_COPY
都被认为是在组2中。
进一步看,我没有使用任何编程语言。我正在使用一些第三方工具。它只允许我搜索字符串并替换它。它允许我写正则表达式。
只是为了澄清为什么这个问题不同于之前发布的问题,我正在使用的工具不允许我以某种方式使用所有正则表达式。我不知道这个工具是怎么创建的。我只是有UI。提前感谢
发布于 2018-05-31 12:56:37
下面是一个正则表达式,它将捕获您想要维护的整个部分,从而得到一个仅为$1
的替换部分。
(.*_AASHISH_.*?)(?:_COPY)+
以下是一些注意事项:
.*?
-末尾的?
使重复操作符*
不再贪婪。它将匹配给定context.(?:_COPY)
的最小字符数- grouping.+
前缀使其成为非捕获Y
. -重复操作符将使整个最后一组( ?:
)重复1次或更多次,而不仅仅是_COPY
https://stackoverflow.com/questions/50616819
复制相似问题