我有一个if
语句(测试变量(test
)是否具有某个值),然后根据结果为新变量(result
)赋值if
声明。其中一个值必须是正则表达式,它将下一个项目匹配为字母(a-z,A-Z)。
if [ "$test" -eq "0" ] // if test = 0
then
result="^[a-zA-Z\-]"
fi
正则表达式是什么以及如何分配它(不确定我是否正确分配)?
谢谢:)
编辑:它会用在像结构这样的句子中,例如The next character needs to be a letter:
和result
会确保下一个字符是一个字母。
答案 0 :(得分:0)
Bash没有任何方法可以存储正则表达式而不是字符串,所以是的,它只是常规字符串赋值,如下所示:
if next_input_must_start_with_a_letter; then
regex='^[[:alpha:]]'
else
regex='' # always match unconditionally
fi
read -r input
if ! [[ $input =~ $regex ]]; then
echo "Input did not match regex!" >&2
fi