假设如果我想从字符串 daaaaab* aabdcd * 中提取后缀字符串“ aabdcd ” ,则在 KSH 中使用以下表达式,
${ex## + ([!b])+([b])}
这意味着匹配并删除除“b”以外的任何字符,然后贪婪地跟随字符“b”。我不明白的是前面的 +(以粗体突出显示)。为什么需要它?没有它,正则表达式无法完成预期的工作。
#ex=daaaaabaabdcd
#echo ${ex##([!b])+([b])}
daaaaabaabdcd
#echo ${ex##+([!b])+([b])}
aabdcd