如何使用正则表达式在bash脚本中测试前导连字符

时间:2017-11-26 20:51:55

标签: regex bash

当没有更多的连字符时,这段代码似乎没有停止......我做错了什么?

hortense$ if [[ $BFILE =~ ^[-]* ]] ; then BFILE=${BFILE:1} ; fi

hortense$ echo $BFILE

Atbari

hortense$ if [[ $BFILE =~ ^[-]* ]] ; then BFILE=${BFILE:1} ; fi

hortense$ echo $BFILE

tbari

2 个答案:

答案 0 :(得分:1)

模式^[-]*表示以0或更多- 开头。 即使根本没有-,它也会匹配。

*更改为+至少需要一个-

此外,您只需编写[-]而不是-

全部放在一起:

if [[ $BFILE =~ ^-+ ]] ; then BFILE=${BFILE:1} ; fi

答案 1 :(得分:0)

当然你可以完全跳过正则表达式:

if [[ ${BFILE:0:1} == - ]] ...