繁体   English   中英

如何将 UNIX 中的这个正则表达式与 expr 匹配?

[英]How to match this regexp in UNIX with expr?

有人可以告诉我为什么如果条件不匹配 output 以及如何使用 expr 更改 reg exp 模式以将 output 显示为匹配。 问题是 var 变量中的 BH 可以是任何国家代码,例如 US 或 CA。 变量中的所有其他字符保持不变。

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

谢谢高塔姆

这样的事情会做到这一点:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM