我要检查字符串str
中的字母d和y是否以任何顺序同时存在。
如果我尝试使用正则表达式|
中的OR运算符(d|y)
,则如果字符串中包含“ d”或“ y”,则结果为true,但是如果使用AND运算符&
,则不会工作,甚至评估为假
两个字母都以字符串形式存在。
检查此内容的正确方法是什么?
这是我到目前为止测试过的
str="good day"
if [[ $str =~ (d|y) ]] # This works for OR operator
if [[ $str =~ (d&y) ]] # doesn´t work for AND operator
then
echo "yes"
else
echo "no"
fi
谢谢。
答案 0 :(得分:1)
if [[ $str =~ (d.*y)|(y.*d) ]]; then
或者如果您不想重复d
和y
:
if [[ $str =~ d ]] && [[ $str =~ y ]] ; then