![](/img/trans.png)
[英]What's special about a “space” character in an “expr match” regexp?
[英]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.