如何将UNIX中的regexp与expr相匹配



一些body pl能告诉我为什么这个if条件没有输出Matched,以及如何用expr更改reg exp模式以将输出显示为Matched吗。问题是,var变量中可以有任何国家代码,如US或CA,而不是BH。变量中的所有其他字符都保持不变。

var1="BH.EBS.EBS.BH.RCMS.RCMS.FBACCR"
if [ `expr $var1 : "*.EBS.EBS.*.RCMS.RCMS.FBACCR"` -gt 0 ]; then
echo "Matched"
else
echo "Not matched"
fi

谢谢Gautam

这样的东西可以做到:

..EBS.EBS....RCMS.RCMS.FBACCR

请记住,原始字符串中的点是正则表达式中的一种特殊类型的字符,这意味着它们不会被解释为点。相反,它说它可以是任何字符。然后你必须对它们进行scape,因此才有了反斜杠。

最后,在需要匹配BH的地方,可以使用点。。如果国家代码保证为2个字符长。如果没有,您可以使用:

.*.EBS.EBS..*.RCMS.RCMS.FBACCR

相关内容

  • 没有找到相关文章