首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换abcde[Backspace][Backspace] -> abc

替换abcde[Backspace][Backspace] -> abc
EN

Stack Overflow用户
提问于 2012-10-24 13:36:43
回答 2查看 895关注 0票数 2

如何构造regex以便执行以下替换:

  • abcdef[Backspace][Backspace][Backspace] -> abc
  • [Backspace][Backspace] -> (空字符串)

目前,我正试图在一个循环中逐个替换后置空间。还有别的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-24 14:11:59

为了完整起见,这里有一个使用负面查找的解决方案(您可能打算自己使用):

代码语言:javascript
复制
(^|.(?<!\[Backspace]))\[Backspace]

用空字符串替换。在循环中这样做。如果您正在使用Java或其他一些需要转义反斜杠的情况,请将两个反斜杠加倍。

票数 1
EN

Stack Overflow用户

发布于 2012-10-24 13:44:21

想到的第一件事是在循环中用空字符串替换.\[Backspace\],只要有匹配。然后将\[Backspace\]替换为全局空字符串。

编辑:正如在评论中提到的那样,当我们有太多的后置空间时,答案就不太好了。

作为一种解决方案,我们可以在每次迭代^\[Backspace\]替换之前用空字符串替换所有.\[Backspace\]

假设Perl规则用于分组,s/^(?:\[Backspace\])*//将完成此任务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13050435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档