正则表达式 – 使用sed或其他bash工具在字符串末尾删除模式

我想删除字符串末尾的任何ABC.

我想出的最好的是

echo ${String}| sed -e 's/["ABC"]*$//g'

但是,它将删除字符串末尾的所有A或B或C.

如果String是DAAAAABCBBBCCABCABC,如果我使用上面的表达式,它将返回“D”,而不是“DAAAAABCBBBCC”

有什么更好的办法吗?谢谢.

这应该工作:

echo "DAAAAABCBBBCCABCABC" | sed -e 's/\(ABC\)*$//g'

结果:

DAAAAABCBBBCC

括号之间的环绕字符串和*以适当的顺序应用于其中的所有字母.

翻译自:https://stackoverflow.com/questions/9191030/removing-pattern-at-the-end-of-a-string-using-sed-or-other-bash-tools

转载注明原文:正则表达式 – 使用sed或其他bash工具在字符串末尾删除模式