尝试使用 解决代码高尔夫问题zsh
,但我的正则表达式无法正常工作。
要求
给定输入字符串$1
,立即删除任何!
字符左侧的所有空格。
例子:
Input ($1) Expected Result:
" ! a! !b c!d !" => "! a!!b c!d!"
"a !" => "a!"
"! a" => "! a"
"! ! !" => "!!!"
"! " => "! "
我想要一个zsh
只使用内置的解决方案,这是我能得到的最接近的:
<<<${(S)1// *!/!}
不幸的是——在线尝试——这会导致
!!!b!d!
! a
!!!
!
正如你所看到的,第一行被*
比赛过于热情地破坏了。zsh 文档(指南的第 5.9.2 和 5.9.3节)在这一点上相当混乱。
优先运算符+
也不起作用:(<<<${(S)1//+( )!/!}