如何构造regex以便执行以下替换:
abcdef[Backspace][Backspace][Backspace] -> abc[Backspace][Backspace] -> (空字符串)目前,我正试图在一个循环中逐个替换后置空间。还有别的办法吗?
发布于 2012-10-24 14:11:59
为了完整起见,这里有一个使用负面查找的解决方案(您可能打算自己使用):
(^|.(?<!\[Backspace]))\[Backspace]用空字符串替换。在循环中这样做。如果您正在使用Java或其他一些需要转义反斜杠的情况,请将两个反斜杠加倍。
发布于 2012-10-24 13:44:21
想到的第一件事是在循环中用空字符串替换.\[Backspace\],只要有匹配。然后将\[Backspace\]替换为全局空字符串。
编辑:正如在评论中提到的那样,当我们有太多的后置空间时,答案就不太好了。
作为一种解决方案,我们可以在每次迭代^\[Backspace\]替换之前用空字符串替换所有.\[Backspace\]。
假设Perl规则用于分组,s/^(?:\[Backspace\])*//将完成此任务。
https://stackoverflow.com/questions/13050435
复制相似问题