shell脚本 - 根据if语句的结果将regex分配给变量

时间:2014-10-20 19:52:07

标签: regex shell

我有一个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会确保下一个字符是一个字母。

1 个答案:

答案 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
相关问题